Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Franck Pommereau
/
zinc
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Franck Pommereau
2019-12-09 10:46:46 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4b8517827e0d823488fe3de9f36ed032b75bb1ad
4b851782
1 parent
41a9794a
minor changes
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
14 deletions
libs/go/src/zn/multisets.go
libs/go/src/zn/tables.go
libs/go/src/zn/multisets.go
View file @
4b85178
...
...
@@ -54,7 +54,9 @@ func (self Mset) Copy () interface{} {
return
Mset
{
&
h
,
self
.
size
}
}
//+++ zn.MakeMset(1, 2, 2, 3, 3, 3).Copy().Eq(zn.MakeMset(1, 2, 2, 3, 3, 3))
//### a := zn.MakeMset(1, 2, 2, 3, 3, 3).Copy()
//... a.(zn.Mset).Eq(zn.MakeMset(1, 2, 2, 3, 3, 3))
//=== true
func
(
self
Mset
)
Len
()
uint64
{
return
self
.
size
...
...
libs/go/src/zn/tables.go
View file @
4b85178
...
...
@@ -36,6 +36,9 @@ type Equatable interface {
}
func
Eq
(
a
,
b
interface
{})
bool
{
if
&
a
==
&
b
{
return
true
}
i
,
ok
:=
a
.
(
Equatable
)
if
ok
{
return
i
.
Eq
(
b
)
...
...
@@ -151,11 +154,9 @@ func (self *hGen) next () uint64 {
func
(
self
Hashtable
)
lookup
(
key
interface
{},
hashvalue
uint64
)
(
int64
,
uint64
)
{
var
freeslot
uint64
var
fsempty
bool
=
true
if
self
.
filled
>=
uint64
(
len
(
self
.
indices
))
{
panic
(
"no open slot"
)
}
var
index
int64
for
i
,
g
:=
self
.
probe
(
hashvalue
);
true
;
i
=
g
.
next
()
{
index
:
=
self
.
indices
[
i
]
index
=
self
.
indices
[
i
]
switch
index
{
case
_FREE
:
if
fsempty
{
...
...
@@ -337,15 +338,6 @@ func (self Hashtable) Eq (other interface{}) bool {
return
true
}
for
i
:=
uint64
(
0
);
i
<
self
.
used
;
i
++
{
if
self
.
haspl
{
if
&
self
.
slots
[
i
]
==
&
ht
.
slots
[
i
]
&&
&
self
.
payloads
[
i
]
!=
&
ht
.
payloads
[
i
]
{
return
true
}
}
else
{
if
&
self
.
slots
[
i
]
==
&
ht
.
slots
[
i
]
{
return
true
}
}
key
,
val
:=
ht
.
Get
(
self
.
slots
[
i
]
.
key
)
if
key
==
nil
{
return
false
...
...
Please
register
or
login
to post a comment