contrib
contact
clib
same.c
Go to the documentation of this file.
1
/* Oct.16, 1990. definition of error is changed to Euclid norm */
2
/* UNIT is considered when error is evaluated */
3
4
#include "
arith.h
"
5
6
same
(w,en,hashtab)
7
REAL
w[
MAXRANK
][
MAXEDGE
];
8
int
en;
9
TABLE
hashtab;
10
{
11
VECTOR
w1,w2;
12
REAL
error
;
13
int
i,k,hashkey,hashval;
14
15
for
(i=0; i<
MAXRANK
; i++)
16
w1[i]= w[i][en];
17
18
hashval=
hash5
(w1);
19
20
for
(k=hashval; k<
HASHNO
; k++){
21
hashkey= hashtab[k];
22
if
(hashkey ==
EMPTY
){
23
return
(k);
24
}
25
else
{
26
error
= 0.0e0;
27
for
(i=0; i<
MAXRANK
; i++){
28
w2[i] = w[i][hashkey];
29
error
+= (w1[i] - w2[i]) * (w1[i] - w2[i]);
30
}
31
if
(
sqrt
(
error
) <
EPS
/
UNIT
)
32
return
(
COLLISION
);
33
}
34
}
35
36
for
(k=0; k<
HASHNO
; k++){
37
hashkey= hashtab[k];
38
if
(hashkey ==
EMPTY
){
39
return
(k);
40
}
41
else
{
42
error
= 0.0e0;
43
for
(i=0; i<
MAXRANK
; i++){
44
w2[i] = w[i][hashkey];
45
error
+= (w1[i] - w2[i]) * (w1[i] - w2[i]);
46
}
47
if
(
sqrt
(
error
) <
EPS
/
UNIT
)
48
return
(
COLLISION
);
49
}
50
}
51
}
52
53
54
55
56
HASHNO
#define HASHNO
Definition:
arith.h:23
arith.h
same
same(w, int en, TABLE hashtab)
Definition:
same.c:6
COLLISION
#define COLLISION
Definition:
arith.h:22
EPS
#define EPS
Definition:
arith.h:15
MAXEDGE
#define MAXEDGE
Definition:
arith.h:14
hash5
hash5(VECTOR w)
Definition:
hash5.c:6
error
pointer error(enum errorcode ec,...) pointer error(va_alist) va_dcl
Definition:
eus.c:297
sqrt
double sqrt()
REAL
double REAL
Definition:
arith.h:25
EMPTY
#define EMPTY
Definition:
arith.h:21
MAXRANK
#define MAXRANK
Definition:
arith.h:13
VECTOR
REAL VECTOR[MAX]
Definition:
arith.h:26
UNIT
#define UNIT
Definition:
arith.h:18
TABLE
int TABLE[HASHNO]
Definition:
arith.h:29
euslisp
Author(s): Toshihiro Matsui
autogenerated on Thu Jun 15 2023 02:06:43