Merge and close elliptic curve branch.
[u/mdw/catacomb] / tests / gfreduce
diff --git a/tests/gfreduce b/tests/gfreduce
new file mode 100644 (file)
index 0000000..806ec28
--- /dev/null
@@ -0,0 +1,61 @@
+# $Id: gfreduce,v 1.2 2004/03/21 22:52:06 mdw Exp $
+#
+# Test efficient polynomial reduction
+
+reduce {
+          0x10000000
+  0x4509823098098435
+           0x8098435;
+  0x100000000000000050002
+    0x4509823098098435
+    0x4509823098098435;
+  0x100000000000000050002
+    0x450982309809843545609843098560803495
+    0x144f98a2f5cbc4773cfd;
+  0xb2ca471b0867d5fae2e4f27a2d2706da
+    0xf254423fef93d5d7a76ecf22c656c1352c53257875945d33
+    0x582f783fc210f72814780e69b0bd29ff;
+}
+
+modexp {
+  0x20000000000000000000000000000000000000000000000000000000000001001
+  0x02
+  0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+  1;
+  0x20000000000000000000000000000000000000000000000000000000000001001
+  0x435932098459080438094509845
+  0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+  1;
+  0x10000000000000000000000000000000000000000003
+  0x02
+  0x0fffffffffffffffffffffffffffffffffffffffffff
+  1;
+  0x10000000000000000000000000000000000000000003
+  0x34235950984598345900983409845690805680985
+  0x0fffffffffffffffffffffffffffffffffffffffffff
+  1;
+}
+
+sqrt {
+  0x20000000000000000000000000000000000000000000000000000000000001001
+  0x1f081e69f45d3254530766ab98d55fa612c7bb27ea31bc2621d894be9c0b196b3
+   0x7fb838a8a0a95046b9d9d9fb4440f7bbc1a7bd3b4e853fc92d4e1588719986aa;
+  0x10000000000000000000000000000000000000000003
+   0x4594094509835690805698083560980459903450984
+   0x820291881a244a02840a2f8ece3f23f88f38bf0b3a;
+}
+
+halftrace {
+  0x20000000000000000000000000000000000000000000000000000000000001001
+  0x174e65c7d14a8ec286df8c7df17662f13f1d3563f13c8c63f23f5d0bd5d1b45cd
+   0x8d68905434b020ccb849e17a03a5c441d2a104aaf523699c1cc7a93174d21d9d;
+}
+
+quadsolve {
+  0x20000000000000000000000000000000000000000000000000000000000001001
+  0x174e65c7d14a8ec286df8c7df17662f13f1d3563f13c8c63f23f5d0bd5d1b45cd
+   0x8d68905434b020ccb849e17a03a5c441d2a104aaf523699c1cc7a93174d21d9c;
+  0x10000000000000000000000000000000000000000003
+   0x3b818b447e90713da04f13c3b07cb5e2681d08e4700
+   0x27aa17c97dfa80bbdef9f91b243c6e6ddba1a223cac;
+}