]> gitweb.factorcode.org Git - factor.git/commitdiff
extra: moving hash-sets.numbers, hashtables.numbers to basis.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 2 Mar 2020 04:50:58 +0000 (20:50 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 2 Mar 2020 04:50:58 +0000 (20:50 -0800)
26 files changed:
basis/hash-sets/numbers/authors.txt [new file with mode: 0644]
basis/hash-sets/numbers/numbers-tests.factor [new file with mode: 0644]
basis/hash-sets/numbers/numbers.factor [new file with mode: 0644]
basis/hash-sets/numbers/prettyprint/prettyprint.factor [new file with mode: 0644]
basis/hash-sets/numbers/tags.txt [new file with mode: 0644]
basis/hashtables/numbers/authors.txt [new file with mode: 0644]
basis/hashtables/numbers/numbers-tests.factor [new file with mode: 0644]
basis/hashtables/numbers/numbers.factor [new file with mode: 0644]
basis/hashtables/numbers/prettyprint/prettyprint.factor [new file with mode: 0644]
basis/hashtables/numbers/tags.txt [new file with mode: 0644]
basis/math/hashcodes/hashcodes-tests.factor [new file with mode: 0644]
basis/math/hashcodes/hashcodes.factor [new file with mode: 0644]
basis/math/hashcodes/tags.txt [new file with mode: 0644]
extra/hash-sets/numbers/authors.txt [deleted file]
extra/hash-sets/numbers/numbers-tests.factor [deleted file]
extra/hash-sets/numbers/numbers.factor [deleted file]
extra/hash-sets/numbers/prettyprint/prettyprint.factor [deleted file]
extra/hash-sets/numbers/tags.txt [deleted file]
extra/hashtables/numbers/authors.txt [deleted file]
extra/hashtables/numbers/numbers-tests.factor [deleted file]
extra/hashtables/numbers/numbers.factor [deleted file]
extra/hashtables/numbers/prettyprint/prettyprint.factor [deleted file]
extra/hashtables/numbers/tags.txt [deleted file]
extra/math/hashcodes/hashcodes-tests.factor [deleted file]
extra/math/hashcodes/hashcodes.factor [deleted file]
extra/math/hashcodes/tags.txt [deleted file]

diff --git a/basis/hash-sets/numbers/authors.txt b/basis/hash-sets/numbers/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/basis/hash-sets/numbers/numbers-tests.factor b/basis/hash-sets/numbers/numbers-tests.factor
new file mode 100644 (file)
index 0000000..4440e56
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: hash-sets.numbers kernel sets tools.test ;
+
+{ t } [ 1.5 NHS{ 3/2 } in? ] unit-test
+
+{ NHS{ 3/2 } } [
+    1.5 NHS{ 3/2 } [ adjoin ] keep
+] unit-test
+
+{ t } [
+    NHS{ } clone 1.5 over adjoin
+    3/2 swap in?
+] unit-test
+
+{ { 1.5 } } [ NHS{ 1.5 } members ] unit-test
diff --git a/basis/hash-sets/numbers/numbers.factor b/basis/hash-sets/numbers/numbers.factor
new file mode 100644 (file)
index 0000000..72b3137
--- /dev/null
@@ -0,0 +1,41 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: accessors hash-sets hash-sets.wrapped kernel math
+math.hashcodes parser sequences vocabs.loader ;
+
+IN: hash-sets.numbers
+
+<PRIVATE
+
+TUPLE: number-wrapper
+    { underlying number read-only } ;
+
+C: <number-wrapper> number-wrapper
+
+M: number-wrapper equal?
+    over number-wrapper?
+    [ [ underlying>> ] bi@ number= ]
+    [ 2drop f ] if ; inline
+
+M: number-wrapper hashcode*
+    nip underlying>> number-hashcode ; inline
+
+PRIVATE>
+
+TUPLE: number-hash-set < wrapped-hash-set ;
+
+: <number-hash-set> ( n -- shash-set )
+    <hash-set> number-hash-set boa ; inline
+
+M: number-hash-set wrap-key drop <number-wrapper> ;
+
+M: number-hash-set clone
+    underlying>> clone number-hash-set boa ; inline
+
+: >number-hash-set ( members -- shash-set )
+    [ <number-wrapper> ] map >hash-set number-hash-set boa ;
+
+SYNTAX: NHS{ \ } [ >number-hash-set ] parse-literal ;
+
+{ "hash-sets.numbers" "prettyprint" } "hash-sets.numbers.prettyprint" require-when
diff --git a/basis/hash-sets/numbers/prettyprint/prettyprint.factor b/basis/hash-sets/numbers/prettyprint/prettyprint.factor
new file mode 100644 (file)
index 0000000..55188e1
--- /dev/null
@@ -0,0 +1,8 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: hash-sets.numbers kernel prettyprint.custom ;
+
+IN: hash-sets.numbers.prettyprint
+
+M: number-hash-set pprint-delims drop \ NHS{ \ } ;
diff --git a/basis/hash-sets/numbers/tags.txt b/basis/hash-sets/numbers/tags.txt
new file mode 100644 (file)
index 0000000..42d711b
--- /dev/null
@@ -0,0 +1 @@
+collections
diff --git a/basis/hashtables/numbers/authors.txt b/basis/hashtables/numbers/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/basis/hashtables/numbers/numbers-tests.factor b/basis/hashtables/numbers/numbers-tests.factor
new file mode 100644 (file)
index 0000000..ee3eab4
--- /dev/null
@@ -0,0 +1,19 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: assocs hashtables.numbers kernel literals sequences
+tools.test ;
+
+{ 1000 } [ 3/2 NH{ { 1.5 1000 } } at ] unit-test
+
+{ 1001 } [
+    1001 1.5 NH{ { 3/2 1000 } }
+    [ set-at ] [ at ] 2bi
+] unit-test
+
+{ 1001 } [
+    NH{ } clone 1001 1.5 pick set-at
+    3/2 of
+] unit-test
+
+{ { { 1.0 1000 } } } [ NH{ { 1.0 1000 } } >alist ] unit-test
diff --git a/basis/hashtables/numbers/numbers.factor b/basis/hashtables/numbers/numbers.factor
new file mode 100644 (file)
index 0000000..f2132da
--- /dev/null
@@ -0,0 +1,44 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: accessors assocs combinators hashtables
+hashtables.wrapped kernel math math.hashcodes parser
+vocabs.loader ;
+
+IN: hashtables.numbers
+
+<PRIVATE
+
+TUPLE: number-wrapper
+    { underlying number read-only } ;
+
+C: <number-wrapper> number-wrapper
+
+M: number-wrapper equal?
+    over number-wrapper?
+    [ [ underlying>> ] bi@ number= ]
+    [ 2drop f ] if ; inline
+
+M: number-wrapper hashcode*
+    nip underlying>> number-hashcode ; inline
+
+PRIVATE>
+
+TUPLE: number-hashtable < wrapped-hashtable ;
+
+: <number-hashtable> ( n -- shashtable )
+    <hashtable> number-hashtable boa ; inline
+
+M: number-hashtable wrap-key drop <number-wrapper> ;
+
+M: number-hashtable clone
+    underlying>> clone number-hashtable boa ; inline
+
+: >number-hashtable ( assoc -- shashtable )
+    [ assoc-size <number-hashtable> ] keep assoc-union! ;
+
+M: number-hashtable new-assoc drop <number-hashtable> ;
+
+SYNTAX: NH{ \ } [ >number-hashtable ] parse-literal ;
+
+{ "hashtables.numbers" "prettyprint" } "hashtables.numbers.prettyprint" require-when
diff --git a/basis/hashtables/numbers/prettyprint/prettyprint.factor b/basis/hashtables/numbers/prettyprint/prettyprint.factor
new file mode 100644 (file)
index 0000000..eb7c585
--- /dev/null
@@ -0,0 +1,8 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: hashtables.numbers kernel prettyprint.custom ;
+
+IN: hashtables.numbers
+
+M: number-hashtable pprint-delims drop \ NH{ \ } ;
diff --git a/basis/hashtables/numbers/tags.txt b/basis/hashtables/numbers/tags.txt
new file mode 100644 (file)
index 0000000..42d711b
--- /dev/null
@@ -0,0 +1 @@
+collections
diff --git a/basis/math/hashcodes/hashcodes-tests.factor b/basis/math/hashcodes/hashcodes-tests.factor
new file mode 100644 (file)
index 0000000..e1a55e3
--- /dev/null
@@ -0,0 +1,15 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: arrays kernel grouping math math.hashcodes sequences
+tools.test ;
+
+{ t } [
+    12 dup >bignum 12.0 12 0 complex boa 4array
+    [ number-hashcode ] map all-equal?
+] unit-test
+
+{ t } [
+    1.5 3/2 1.5 0 complex boa 3/2 0 complex boa 4array
+    [ number-hashcode ] map all-equal?
+] unit-test
diff --git a/basis/math/hashcodes/hashcodes.factor b/basis/math/hashcodes/hashcodes.factor
new file mode 100644 (file)
index 0000000..9fd454e
--- /dev/null
@@ -0,0 +1,49 @@
+! Copyright (C) 2013 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: combinators kernel layouts math math.bitwise
+math.floating-point math.functions ;
+
+IN: math.hashcodes
+
+GENERIC: number-hashcode ( x -- h )
+
+<PRIVATE
+
+: P ( -- x )
+    cell-bits 64 = 61 31 ? 2^ 1 - ; inline foldable
+
+: M ( -- x )
+    cell-bits 1 - 2^ ; inline foldable
+
+: hash-fraction ( m n -- h )
+
+    [ 2dup [ P mod zero? ] both? ] [
+        [ P /i ] bi@
+    ] while
+
+    dup P mod zero? [
+        2drop 1/0.
+    ] [
+        over [
+            [ abs P mod ] [ P 2 - P ^mod P mod ] bi* *
+        ] dip 0 < [ neg ] when
+        dup -1 = [ drop -2 ] when
+    ] if ; inline
+
+PRIVATE>
+
+M: integer number-hashcode 1 hash-fraction ;
+
+M: ratio number-hashcode >fraction hash-fraction ;
+
+M: float number-hashcode ( x -- h )
+    {
+        { [ dup fp-nan? ] [ drop 0 ] }
+        { [ dup fp-infinity? ] [ 0 > 314159 -314159 ? ] }
+        [ double>ratio number-hashcode ]
+    } cond ;
+
+M: complex number-hashcode ( x -- h )
+    >rect [ number-hashcode ] bi@ 1000003 * +
+    cell-bits on-bits bitand dup -1 = [ drop -2 ] when ;
diff --git a/basis/math/hashcodes/tags.txt b/basis/math/hashcodes/tags.txt
new file mode 100644 (file)
index 0000000..ede10ab
--- /dev/null
@@ -0,0 +1 @@
+math
diff --git a/extra/hash-sets/numbers/authors.txt b/extra/hash-sets/numbers/authors.txt
deleted file mode 100644 (file)
index e091bb8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-John Benediktsson
diff --git a/extra/hash-sets/numbers/numbers-tests.factor b/extra/hash-sets/numbers/numbers-tests.factor
deleted file mode 100644 (file)
index 4440e56..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: hash-sets.numbers kernel sets tools.test ;
-
-{ t } [ 1.5 NHS{ 3/2 } in? ] unit-test
-
-{ NHS{ 3/2 } } [
-    1.5 NHS{ 3/2 } [ adjoin ] keep
-] unit-test
-
-{ t } [
-    NHS{ } clone 1.5 over adjoin
-    3/2 swap in?
-] unit-test
-
-{ { 1.5 } } [ NHS{ 1.5 } members ] unit-test
diff --git a/extra/hash-sets/numbers/numbers.factor b/extra/hash-sets/numbers/numbers.factor
deleted file mode 100644 (file)
index 72b3137..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: accessors hash-sets hash-sets.wrapped kernel math
-math.hashcodes parser sequences vocabs.loader ;
-
-IN: hash-sets.numbers
-
-<PRIVATE
-
-TUPLE: number-wrapper
-    { underlying number read-only } ;
-
-C: <number-wrapper> number-wrapper
-
-M: number-wrapper equal?
-    over number-wrapper?
-    [ [ underlying>> ] bi@ number= ]
-    [ 2drop f ] if ; inline
-
-M: number-wrapper hashcode*
-    nip underlying>> number-hashcode ; inline
-
-PRIVATE>
-
-TUPLE: number-hash-set < wrapped-hash-set ;
-
-: <number-hash-set> ( n -- shash-set )
-    <hash-set> number-hash-set boa ; inline
-
-M: number-hash-set wrap-key drop <number-wrapper> ;
-
-M: number-hash-set clone
-    underlying>> clone number-hash-set boa ; inline
-
-: >number-hash-set ( members -- shash-set )
-    [ <number-wrapper> ] map >hash-set number-hash-set boa ;
-
-SYNTAX: NHS{ \ } [ >number-hash-set ] parse-literal ;
-
-{ "hash-sets.numbers" "prettyprint" } "hash-sets.numbers.prettyprint" require-when
diff --git a/extra/hash-sets/numbers/prettyprint/prettyprint.factor b/extra/hash-sets/numbers/prettyprint/prettyprint.factor
deleted file mode 100644 (file)
index 55188e1..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: hash-sets.numbers kernel prettyprint.custom ;
-
-IN: hash-sets.numbers.prettyprint
-
-M: number-hash-set pprint-delims drop \ NHS{ \ } ;
diff --git a/extra/hash-sets/numbers/tags.txt b/extra/hash-sets/numbers/tags.txt
deleted file mode 100644 (file)
index 42d711b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-collections
diff --git a/extra/hashtables/numbers/authors.txt b/extra/hashtables/numbers/authors.txt
deleted file mode 100644 (file)
index e091bb8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-John Benediktsson
diff --git a/extra/hashtables/numbers/numbers-tests.factor b/extra/hashtables/numbers/numbers-tests.factor
deleted file mode 100644 (file)
index ee3eab4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: assocs hashtables.numbers kernel literals sequences
-tools.test ;
-
-{ 1000 } [ 3/2 NH{ { 1.5 1000 } } at ] unit-test
-
-{ 1001 } [
-    1001 1.5 NH{ { 3/2 1000 } }
-    [ set-at ] [ at ] 2bi
-] unit-test
-
-{ 1001 } [
-    NH{ } clone 1001 1.5 pick set-at
-    3/2 of
-] unit-test
-
-{ { { 1.0 1000 } } } [ NH{ { 1.0 1000 } } >alist ] unit-test
diff --git a/extra/hashtables/numbers/numbers.factor b/extra/hashtables/numbers/numbers.factor
deleted file mode 100644 (file)
index f2132da..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: accessors assocs combinators hashtables
-hashtables.wrapped kernel math math.hashcodes parser
-vocabs.loader ;
-
-IN: hashtables.numbers
-
-<PRIVATE
-
-TUPLE: number-wrapper
-    { underlying number read-only } ;
-
-C: <number-wrapper> number-wrapper
-
-M: number-wrapper equal?
-    over number-wrapper?
-    [ [ underlying>> ] bi@ number= ]
-    [ 2drop f ] if ; inline
-
-M: number-wrapper hashcode*
-    nip underlying>> number-hashcode ; inline
-
-PRIVATE>
-
-TUPLE: number-hashtable < wrapped-hashtable ;
-
-: <number-hashtable> ( n -- shashtable )
-    <hashtable> number-hashtable boa ; inline
-
-M: number-hashtable wrap-key drop <number-wrapper> ;
-
-M: number-hashtable clone
-    underlying>> clone number-hashtable boa ; inline
-
-: >number-hashtable ( assoc -- shashtable )
-    [ assoc-size <number-hashtable> ] keep assoc-union! ;
-
-M: number-hashtable new-assoc drop <number-hashtable> ;
-
-SYNTAX: NH{ \ } [ >number-hashtable ] parse-literal ;
-
-{ "hashtables.numbers" "prettyprint" } "hashtables.numbers.prettyprint" require-when
diff --git a/extra/hashtables/numbers/prettyprint/prettyprint.factor b/extra/hashtables/numbers/prettyprint/prettyprint.factor
deleted file mode 100644 (file)
index eb7c585..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: hashtables.numbers kernel prettyprint.custom ;
-
-IN: hashtables.numbers
-
-M: number-hashtable pprint-delims drop \ NH{ \ } ;
diff --git a/extra/hashtables/numbers/tags.txt b/extra/hashtables/numbers/tags.txt
deleted file mode 100644 (file)
index 42d711b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-collections
diff --git a/extra/math/hashcodes/hashcodes-tests.factor b/extra/math/hashcodes/hashcodes-tests.factor
deleted file mode 100644 (file)
index e1a55e3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: arrays kernel grouping math math.hashcodes sequences
-tools.test ;
-
-{ t } [
-    12 dup >bignum 12.0 12 0 complex boa 4array
-    [ number-hashcode ] map all-equal?
-] unit-test
-
-{ t } [
-    1.5 3/2 1.5 0 complex boa 3/2 0 complex boa 4array
-    [ number-hashcode ] map all-equal?
-] unit-test
diff --git a/extra/math/hashcodes/hashcodes.factor b/extra/math/hashcodes/hashcodes.factor
deleted file mode 100644 (file)
index 9fd454e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-! Copyright (C) 2013 John Benediktsson
-! See http://factorcode.org/license.txt for BSD license
-
-USING: combinators kernel layouts math math.bitwise
-math.floating-point math.functions ;
-
-IN: math.hashcodes
-
-GENERIC: number-hashcode ( x -- h )
-
-<PRIVATE
-
-: P ( -- x )
-    cell-bits 64 = 61 31 ? 2^ 1 - ; inline foldable
-
-: M ( -- x )
-    cell-bits 1 - 2^ ; inline foldable
-
-: hash-fraction ( m n -- h )
-
-    [ 2dup [ P mod zero? ] both? ] [
-        [ P /i ] bi@
-    ] while
-
-    dup P mod zero? [
-        2drop 1/0.
-    ] [
-        over [
-            [ abs P mod ] [ P 2 - P ^mod P mod ] bi* *
-        ] dip 0 < [ neg ] when
-        dup -1 = [ drop -2 ] when
-    ] if ; inline
-
-PRIVATE>
-
-M: integer number-hashcode 1 hash-fraction ;
-
-M: ratio number-hashcode >fraction hash-fraction ;
-
-M: float number-hashcode ( x -- h )
-    {
-        { [ dup fp-nan? ] [ drop 0 ] }
-        { [ dup fp-infinity? ] [ 0 > 314159 -314159 ? ] }
-        [ double>ratio number-hashcode ]
-    } cond ;
-
-M: complex number-hashcode ( x -- h )
-    >rect [ number-hashcode ] bi@ 1000003 * +
-    cell-bits on-bits bitand dup -1 = [ drop -2 ] when ;
diff --git a/extra/math/hashcodes/tags.txt b/extra/math/hashcodes/tags.txt
deleted file mode 100644 (file)
index ede10ab..0000000
+++ /dev/null
@@ -1 +0,0 @@
-math