aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/data/formulas
diff options
context:
space:
mode:
authorJ08nY2024-07-24 14:04:20 +0200
committerJ08nY2024-07-24 14:04:20 +0200
commita706f612a7bf0930af9a2a8af195cc0ec75970a2 (patch)
tree141a0038090d0f2ca21183dd35063a1547c95b89 /test/data/formulas
parent78731654f97576e2907d922501185e25d58e495f (diff)
downloadpyecsca-a706f612a7bf0930af9a2a8af195cc0ec75970a2.tar.gz
pyecsca-a706f612a7bf0930af9a2a8af195cc0ec75970a2.tar.zst
pyecsca-a706f612a7bf0930af9a2a8af195cc0ec75970a2.zip
Move library formulas from test to main package.
Diffstat (limited to 'test/data/formulas')
-rw-r--r--test/data/formulas/__init__.py0
-rw-r--r--test/data/formulas/add-bc-r1rv76-jac2
-rw-r--r--test/data/formulas/add-bc-r1rv76-jac.op323
-rw-r--r--test/data/formulas/add-bc-r1rv76-mod2
-rw-r--r--test/data/formulas/add-bc-r1rv76-mod.op326
-rw-r--r--test/data/formulas/add-bearssl-v062
-rw-r--r--test/data/formulas/add-bearssl-v06.op323
-rw-r--r--test/data/formulas/add-boringssl-p2242
-rw-r--r--test/data/formulas/add-boringssl-p224.op323
-rw-r--r--test/data/formulas/add-gecc-3223
-rw-r--r--test/data/formulas/add-gecc-322.op318
-rw-r--r--test/data/formulas/add-libgcrypt-v11024
-rw-r--r--test/data/formulas/add-libgcrypt-v1102.op325
-rw-r--r--test/data/formulas/add-libressl-v3824
-rw-r--r--test/data/formulas/add-libressl-v382.op325
-rw-r--r--test/data/formulas/add-openssl-z2562
-rw-r--r--test/data/formulas/add-openssl-z256.op323
-rw-r--r--test/data/formulas/add-openssl-z256a3
-rw-r--r--test/data/formulas/add-openssl-z256a.op318
-rw-r--r--test/data/formulas/add-sunec-v213
-rw-r--r--test/data/formulas/add-sunec-v21-ed255192
-rw-r--r--test/data/formulas/add-sunec-v21-ed25519.op319
-rw-r--r--test/data/formulas/add-sunec-v21.op332
-rw-r--r--test/data/formulas/dbl-bc-r1rv76-jac2
-rw-r--r--test/data/formulas/dbl-bc-r1rv76-jac.op319
-rw-r--r--test/data/formulas/dbl-bc-r1rv76-mod2
-rw-r--r--test/data/formulas/dbl-bc-r1rv76-mod.op318
-rw-r--r--test/data/formulas/dbl-bc-r1rv76-x255194
-rw-r--r--test/data/formulas/dbl-bc-r1rv76-x25519.op39
-rw-r--r--test/data/formulas/dbl-bearssl-v062
-rw-r--r--test/data/formulas/dbl-bearssl-v06.op320
-rw-r--r--test/data/formulas/dbl-boringssl-p2242
-rw-r--r--test/data/formulas/dbl-boringssl-p224.op320
-rw-r--r--test/data/formulas/dbl-gecc-3214
-rw-r--r--test/data/formulas/dbl-gecc-321.op317
-rw-r--r--test/data/formulas/dbl-hacl-x255194
-rw-r--r--test/data/formulas/dbl-hacl-x25519.op39
-rw-r--r--test/data/formulas/dbl-ipp-x255194
-rw-r--r--test/data/formulas/dbl-ipp-x25519.op39
-rw-r--r--test/data/formulas/dbl-libgcrypt-v11022
-rw-r--r--test/data/formulas/dbl-libgcrypt-v1102.op318
-rw-r--r--test/data/formulas/dbl-libressl-v3822
-rw-r--r--test/data/formulas/dbl-libressl-v382.op320
-rw-r--r--test/data/formulas/dbl-secp256k1-v0402
-rw-r--r--test/data/formulas/dbl-secp256k1-v040.op315
-rw-r--r--test/data/formulas/dbl-sunec-v212
-rw-r--r--test/data/formulas/dbl-sunec-v21-ed255192
-rw-r--r--test/data/formulas/dbl-sunec-v21-ed25519.op314
-rw-r--r--test/data/formulas/dbl-sunec-v21.op329
-rw-r--r--test/data/formulas/ladd-bc-r1rv76-x255195
-rw-r--r--test/data/formulas/ladd-bc-r1rv76-x25519.op318
-rw-r--r--test/data/formulas/ladd-boringssl-x255195
-rw-r--r--test/data/formulas/ladd-boringssl-x25519.op318
-rw-r--r--test/data/formulas/ladd-botan-x255194
-rw-r--r--test/data/formulas/ladd-botan-x25519.op318
-rw-r--r--test/data/formulas/ladd-go-12145
-rw-r--r--test/data/formulas/ladd-go-1214.op318
-rw-r--r--test/data/formulas/ladd-hacl-x255195
-rw-r--r--test/data/formulas/ladd-hacl-x25519.op318
-rw-r--r--test/data/formulas/ladd-openssl-x255195
-rw-r--r--test/data/formulas/ladd-openssl-x25519.op318
-rw-r--r--test/data/formulas/ladd-rfc77485
-rw-r--r--test/data/formulas/ladd-rfc7748.op318
-rw-r--r--test/data/formulas/madd-secp256k1-v0402
-rw-r--r--test/data/formulas/madd-secp256k1-v040.op330
65 files changed, 0 insertions, 727 deletions
diff --git a/test/data/formulas/__init__.py b/test/data/formulas/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/test/data/formulas/__init__.py
+++ /dev/null
diff --git a/test/data/formulas/add-bc-r1rv76-jac b/test/data/formulas/add-bc-r1rv76-jac
deleted file mode 100644
index ad7844b..0000000
--- a/test/data/formulas/add-bc-r1rv76-jac
+++ /dev/null
@@ -1,2 +0,0 @@
-source BouncyCastle r1rv76 https://github.com/bcgit/bc-java/blob/r1rv76/core/src/main/java/org/bouncycastle/math/ec/ECPoint.java#L749
-coords jacobian
diff --git a/test/data/formulas/add-bc-r1rv76-jac.op3 b/test/data/formulas/add-bc-r1rv76-jac.op3
deleted file mode 100644
index 5e7f521..0000000
--- a/test/data/formulas/add-bc-r1rv76-jac.op3
+++ /dev/null
@@ -1,23 +0,0 @@
-Z1Squared = Z1^2
-U2 = Z1Squared * X2
-Z1Cubed = Z1Squared * Z1
-S2 = Z1Cubed * Y2
-Z2Squared = Z2^2
-U1 = Z2Squared * X1
-Z2Cubed = Z2Squared * Z2
-S1 = Z2Cubed * Y1
-H = U1 - U2
-R = S1 - S2
-HSquared = H^2
-G = HSquared * H
-V = HSquared * U1
-t0 = 2 * V
-t1 = R^2
-t2 = t1 + G
-X3 = t2 - t0
-t3 = V - X3
-t4 = G * S1
-t5 = t3 * R
-Y3 = t5 - t4
-Z3 = H * Z1
-Z3 = Z3 * Z2
diff --git a/test/data/formulas/add-bc-r1rv76-mod b/test/data/formulas/add-bc-r1rv76-mod
deleted file mode 100644
index 87158b5..0000000
--- a/test/data/formulas/add-bc-r1rv76-mod
+++ /dev/null
@@ -1,2 +0,0 @@
-source BouncyCastle r1rv76 https://github.com/bcgit/bc-java/blob/r1rv76/core/src/main/java/org/bouncycastle/math/ec/ECPoint.java#L749
-coords modified
diff --git a/test/data/formulas/add-bc-r1rv76-mod.op3 b/test/data/formulas/add-bc-r1rv76-mod.op3
deleted file mode 100644
index 7adff36..0000000
--- a/test/data/formulas/add-bc-r1rv76-mod.op3
+++ /dev/null
@@ -1,26 +0,0 @@
-Z1Squared = Z1^2
-U2 = Z1Squared * X2
-Z1Cubed = Z1Squared * Z1
-S2 = Z1Cubed * Y2
-Z2Squared = Z2^2
-U1 = Z2Squared * X1
-Z2Cubed = Z2Squared * Z2
-S1 = Z2Cubed * Y1
-H = U1 - U2
-R = S1 - S2
-HSquared = H^2
-G = HSquared * H
-V = HSquared * U1
-t0 = 2 * V
-t1 = R^2
-t2 = t1 + G
-X3 = t2 - t0
-t3 = V - X3
-t4 = G * S1
-t5 = t3 * R
-Y3 = t5 - t4
-Z3 = H * Z1
-Z3 = Z3 * Z2
-Z3Squared = Z3^2
-W = Z3Squared^2
-T3 = W * a
diff --git a/test/data/formulas/add-bearssl-v06 b/test/data/formulas/add-bearssl-v06
deleted file mode 100644
index b7ac8cd..0000000
--- a/test/data/formulas/add-bearssl-v06
+++ /dev/null
@@ -1,2 +0,0 @@
-source BearSSL v0.6 https://bearssl.org/gitweb/?p=BearSSL;a=blob;f=src/ec/ec_prime_i15.c;h=f86dbe6ff0dbc036af470e369048c4ae02d33337;hb=HEAD#l320
-coords jacobian
diff --git a/test/data/formulas/add-bearssl-v06.op3 b/test/data/formulas/add-bearssl-v06.op3
deleted file mode 100644
index 9b3d3a9..0000000
--- a/test/data/formulas/add-bearssl-v06.op3
+++ /dev/null
@@ -1,23 +0,0 @@
-t3 = Z2^2
-t1 = X1 * t3
-t4 = Z2 * t3
-t3 = Y1 * t4
-t4 = Z1^2
-t2 = X2 * t4
-t5 = Z1 * t4
-t4 = Y2 * t5
-t2 = t2 - t1
-t4 = t4 - t3
-t7 = t2^2
-t6 = t1 * t7
-t5 = t7 * t2
-X = t4^2
-X = X - t5
-X = X - t6
-X3 = X - t6
-t6 = t6 - X3
-Y = t4 * t6
-t1 = t5 * t3
-Y3 = Y - t1
-t1 = Z1 * Z2
-Z3 = t1 * t2
diff --git a/test/data/formulas/add-boringssl-p224 b/test/data/formulas/add-boringssl-p224
deleted file mode 100644
index f3b8097..0000000
--- a/test/data/formulas/add-boringssl-p224
+++ /dev/null
@@ -1,2 +0,0 @@
-source BoringSSL bfa8369 https://github.com/google/boringssl/blob/bfa8369795b7533a222a72b7a1bc928941cd66bf/crypto/fipsmodule/ec/p224-64.c#L676
-coords jacobian-3
diff --git a/test/data/formulas/add-boringssl-p224.op3 b/test/data/formulas/add-boringssl-p224.op3
deleted file mode 100644
index bd0f88e..0000000
--- a/test/data/formulas/add-boringssl-p224.op3
+++ /dev/null
@@ -1,23 +0,0 @@
-ftmp2 = Z2^2
-ftmp4 = Z2 * ftmp2
-ftmp4 = ftmp4 * Y1
-ftmp2 = ftmp2 * X1
-ftmp = Z1^2
-ftmp3 = Z1 * ftmp
-tmp = ftmp3 * Y2
-ftmp3 = tmp - ftmp4
-tmp = ftmp * X2
-ftmp = tmp - ftmp2
-ftmp5 = Z1 * Z2
-Z3 = ftmp * ftmp5
-_ftmp = ftmp^2
-ftmp5 = ftmp * _ftmp
-ftmp2 = ftmp2 * _ftmp
-tmp = ftmp4 * ftmp5
-tmp2 = ftmp3^2
-tmp2 = tmp2 - ftmp5
-ftmp5 = 2 * ftmp2
-X3 = tmp2 - ftmp5
-ftmp2 = ftmp2 - X3
-tmp2 = ftmp3 * ftmp2
-Y3 = tmp2 - tmp
diff --git a/test/data/formulas/add-gecc-322 b/test/data/formulas/add-gecc-322
deleted file mode 100644
index e174e1c..0000000
--- a/test/data/formulas/add-gecc-322
+++ /dev/null
@@ -1,3 +0,0 @@
-source GECC Algorithm 3.22
-coords jacobian-3
-assume Z2 = 1
diff --git a/test/data/formulas/add-gecc-322.op3 b/test/data/formulas/add-gecc-322.op3
deleted file mode 100644
index 731bcda..0000000
--- a/test/data/formulas/add-gecc-322.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-T1 = Z1^2
-T2 = T1 * Z1
-T1 = T1 * X2
-T2 = T2 * Y2
-T1 = T1 - X1
-T2 = T2 - Y1
-Z3 = Z1 * T1
-T3 = T1^2
-T4 = T3 * T1
-T3 = T3 * X1
-T1 = 2 * T3
-X3 = T2^2
-X3 = X3 - T1
-X3 = X3 - T4
-T3 = T3 - X3
-T3 = T3 * T2
-T4 = T4 * Y1
-Y3 = T3 - T4
diff --git a/test/data/formulas/add-libgcrypt-v1102 b/test/data/formulas/add-libgcrypt-v1102
deleted file mode 100644
index 3d542ed..0000000
--- a/test/data/formulas/add-libgcrypt-v1102
+++ /dev/null
@@ -1,4 +0,0 @@
-source libgcrypt v1.10.2 https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob;f=mpi/ec.c;h=c24921eea8bea8363a503d6d6071b116c176d8e5;hb=1c5cbacf3d88dded5063e959ee68678ff7d0fa56#l1406
-parameter half
-assume half = 1/2
-coords jacobian
diff --git a/test/data/formulas/add-libgcrypt-v1102.op3 b/test/data/formulas/add-libgcrypt-v1102.op3
deleted file mode 100644
index d41d7b8..0000000
--- a/test/data/formulas/add-libgcrypt-v1102.op3
+++ /dev/null
@@ -1,25 +0,0 @@
-l1 = Z2^2
-l1 = l1 * X1
-l2 = Z1^2
-l2 = l2 * X2
-l3 = l1 - l2
-l4 = Z2^3
-l4 = l4 * Y1
-l5 = Z1^3
-l5 = l5 * Y2
-l6 = l4 - l5
-l7 = l1 + l2
-l8 = l4 + l5
-Z3 = Z1 * Z2
-Z3 = Z3 * l3
-t1 = l6^2
-t2 = l3^2
-t2 = t2 * l7
-X3 = t1 - t2
-t1 = X3 * 2
-l9 = t2 - t1
-l9 = l9 * l6
-t1 = l3^3
-t1 = t1 * l8
-Y3 = l9 - t1
-Y3 = Y3 * half
diff --git a/test/data/formulas/add-libressl-v382 b/test/data/formulas/add-libressl-v382
deleted file mode 100644
index b40a190..0000000
--- a/test/data/formulas/add-libressl-v382
+++ /dev/null
@@ -1,4 +0,0 @@
-source LibreSSL v3.8.2 https://github.com/libressl/openbsd/blob/libressl-v3.8.2/src/lib/libcrypto/ec/ecp_smpl.c#L472
-coords Jacobian
-parameter half
-assume half = 1 / 2
diff --git a/test/data/formulas/add-libressl-v382.op3 b/test/data/formulas/add-libressl-v382.op3
deleted file mode 100644
index 0a8aa33..0000000
--- a/test/data/formulas/add-libressl-v382.op3
+++ /dev/null
@@ -1,25 +0,0 @@
-n0 = Z2^2
-n1 = X1 * n0
-n0 = n0 * Z2
-n2 = Y1 * n0
-n0 = Z1^2
-n3 = X2 * n0
-n0 = n0 * Z1
-n4 = Y2 * n0
-n5 = n1 - n3
-n6 = n2 - n4
-n7 = n1 + n3
-n8 = n2 + n4
-n0 = Z1 * Z2
-Z3 = n0 * n5
-n0 = n6^2
-n4 = n5^2
-n3 = n4 * n7
-X3 = n0 - n3
-n0 = 2 * X3
-n9 = n3 - n0
-t0 = n6 * n9
-t1 = n4 * n5
-t2 = n8 * t1
-Y3 = t0 - t2
-Y3 = Y3 * half
diff --git a/test/data/formulas/add-openssl-z256 b/test/data/formulas/add-openssl-z256
deleted file mode 100644
index 84efc9d..0000000
--- a/test/data/formulas/add-openssl-z256
+++ /dev/null
@@ -1,2 +0,0 @@
-source OpenSSL 3.1.4 https://github.com/openssl/openssl/blob/openssl-3.1.4/crypto/ec/ecp_nistz256.c#L312
-coords jacobian-3
diff --git a/test/data/formulas/add-openssl-z256.op3 b/test/data/formulas/add-openssl-z256.op3
deleted file mode 100644
index 3819546..0000000
--- a/test/data/formulas/add-openssl-z256.op3
+++ /dev/null
@@ -1,23 +0,0 @@
-Z2sqr = Z2^2
-Z1sqr = Z1^2
-S1 = Z2sqr * Z2
-S2 = Z1sqr * Z1
-S1 = Y1 * S1
-S2 = Y2 * S2
-R = S2 - S1
-U1 = X1 * Z2sqr
-U2 = X2 * Z1sqr
-H = U2 - U1
-Rsqr = R^2
-Z3 = H * Z1
-Hsqr = H^2
-Z3 = Z3 * Z2
-Hcub = Hsqr * H
-U2 = U1 * Hsqr
-Hsqr = 2 * U2
-X3 = Rsqr - Hsqr
-X3 = X3 - Hcub
-Y3 = U2 - X3
-S2 = S1 * Hcub
-Y3 = R * Y3
-Y3 = Y3 - S2
diff --git a/test/data/formulas/add-openssl-z256a b/test/data/formulas/add-openssl-z256a
deleted file mode 100644
index 71de9d0..0000000
--- a/test/data/formulas/add-openssl-z256a
+++ /dev/null
@@ -1,3 +0,0 @@
-source OpenSSL 3.1.4 https://github.com/openssl/openssl/blob/openssl-3.1.4/crypto/ec/ecp_nistz256.c#L442
-coords jacobian-3
-assume Z2 = 1
diff --git a/test/data/formulas/add-openssl-z256a.op3 b/test/data/formulas/add-openssl-z256a.op3
deleted file mode 100644
index 23f90e6..0000000
--- a/test/data/formulas/add-openssl-z256a.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-Z1sqr = Z1^2
-U2 = X2 * Z1sqr
-H = U2 - X1
-S2 = Z1sqr * Z1
-Z3 = H * Z1
-S2 = S2 * Y2
-R = S2 - Y1
-Hsqr = H^2
-Rsqr = R^2
-Hcub = Hsqr * H
-U2 = X1 * Hsqr
-Hsqr = 2 * U2
-X3 = Rsqr - Hsqr
-X3 = X3 - Hcub
-H = U2 - X3
-S2 = Y1 * Hcub
-H = H * R
-Y3 = H - S2
diff --git a/test/data/formulas/add-sunec-v21 b/test/data/formulas/add-sunec-v21
deleted file mode 100644
index 2d6f395..0000000
--- a/test/data/formulas/add-sunec-v21
+++ /dev/null
@@ -1,3 +0,0 @@
-source Java JDK 21 https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.crypto.ec/share/classes/sun/security/ec/ECOperations.java#L287
-coords projective-3
-assume Z2 = 1
diff --git a/test/data/formulas/add-sunec-v21-ed25519 b/test/data/formulas/add-sunec-v21-ed25519
deleted file mode 100644
index 5814455..0000000
--- a/test/data/formulas/add-sunec-v21-ed25519
+++ /dev/null
@@ -1,2 +0,0 @@
-source Java JDK 21 https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.crypto.ec/share/classes/sun/security/ec/ed/Ed25519Operations.java#L147
-coords extended-1
diff --git a/test/data/formulas/add-sunec-v21-ed25519.op3 b/test/data/formulas/add-sunec-v21-ed25519.op3
deleted file mode 100644
index 2498a1f..0000000
--- a/test/data/formulas/add-sunec-v21-ed25519.op3
+++ /dev/null
@@ -1,19 +0,0 @@
-t1 = Y2 - X2
-t2 = Y1 - X1
-t2 = t2 * t1
-t1 = Y2 + X2
-t3 = Y1 + X1
-t3 = t3 * t1
-X = t3 - t2
-t3 = t3 + t2
-t2 = d + d
-t2 = t2 * T1
-t2 = t2 * T2
-t1 = Z1 * Z2
-t1 = t1 * 2
-Y = t1 + t2
-Z = t1 - t2
-T3 = X1 * t3
-X3 = X * Z
-Z3 = Z * Y
-Y3 = Y * t3
diff --git a/test/data/formulas/add-sunec-v21.op3 b/test/data/formulas/add-sunec-v21.op3
deleted file mode 100644
index d682b16..0000000
--- a/test/data/formulas/add-sunec-v21.op3
+++ /dev/null
@@ -1,32 +0,0 @@
-t0 = X1 * X2
-t1 = Y1 * Y2
-t3 = X2 + Y2
-t4 = X1 + Y1
-t3 = t3 * t4
-t4 = t0 + t1
-t3 = t3 - t4
-t4 = Y2 * Z1
-t4 = t4 + Y1
-Y = X2 * Z1
-Y = Y + X1
-Z = Z1 * b
-X = Y - Z
-X = X * 3
-Z = t1 - X
-X = X + t1
-Y = Y * b
-t2 = Z1 * 3
-Y = Y - t2
-Y = Y - t0
-Y = Y * 3
-t0 = t0 * 3
-t0 = t0 - t2
-t1 = t4 * Y
-t2 = t0 * Y
-Y = X * Z
-Y3 = Y + t2
-X = X * t3
-X3 = X - t1
-Z = Z * t4
-t3 = t3 * t0
-Z3 = Z + t3
diff --git a/test/data/formulas/dbl-bc-r1rv76-jac b/test/data/formulas/dbl-bc-r1rv76-jac
deleted file mode 100644
index 8fca349..0000000
--- a/test/data/formulas/dbl-bc-r1rv76-jac
+++ /dev/null
@@ -1,2 +0,0 @@
-source BouncyCastle r1rv76 https://github.com/bcgit/bc-java/blob/r1rv76/core/src/main/java/org/bouncycastle/math/ec/ECPoint.java#L877
-coords jacobian
diff --git a/test/data/formulas/dbl-bc-r1rv76-jac.op3 b/test/data/formulas/dbl-bc-r1rv76-jac.op3
deleted file mode 100644
index c4ebef2..0000000
--- a/test/data/formulas/dbl-bc-r1rv76-jac.op3
+++ /dev/null
@@ -1,19 +0,0 @@
-Y1Squared = Y1^2
-T = Y1Squared^2
-X1Squared = X1^2
-M = 3 * X1Squared
-Z1Squared = Z1^2
-Z1Pow4 = Z1Squared^2
-t0 = Z1Pow4 * a
-M = M + t0
-t1 = X1 * Y1Squared
-S = 4 * t1
-t2 = 2 * S
-t3 = M^2
-X3 = t3 - t2
-t4 = 8 * T
-t5 = S - X3
-t6 = t5 * M
-Y3 = t6 - t4
-Z3 = 2 * Y1
-Z3 = Z3 * Z1
diff --git a/test/data/formulas/dbl-bc-r1rv76-mod b/test/data/formulas/dbl-bc-r1rv76-mod
deleted file mode 100644
index f9b9843..0000000
--- a/test/data/formulas/dbl-bc-r1rv76-mod
+++ /dev/null
@@ -1,2 +0,0 @@
-source BouncyCastle r1rv76 https://github.com/bcgit/bc-java/blob/r1rv76/core/src/main/java/org/bouncycastle/math/ec/ECPoint.java#L1321
-coords modified
diff --git a/test/data/formulas/dbl-bc-r1rv76-mod.op3 b/test/data/formulas/dbl-bc-r1rv76-mod.op3
deleted file mode 100644
index 201408e..0000000
--- a/test/data/formulas/dbl-bc-r1rv76-mod.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-X1Squared = X1^2
-t0 = 3 * X1Squared
-M = t0 + T1
-_2Y1 = 2 * Y1
-_2Y1Squared = _2Y1 * Y1
-t1 = X1 * _2Y1Squared
-S = 2 * t1
-t2 = M^2
-t3 = 2 * S
-X3 = t2 - t3
-_4T = _2Y1Squared^2
-_8T = 2 * _4T
-t4 = S - X3
-t5 = M * t4
-Y3 = t5 - _8T
-t6 = _8T * T1
-T3 = 2 * t6
-Z3 = _2Y1 * Z1
diff --git a/test/data/formulas/dbl-bc-r1rv76-x25519 b/test/data/formulas/dbl-bc-r1rv76-x25519
deleted file mode 100644
index d5d73fb..0000000
--- a/test/data/formulas/dbl-bc-r1rv76-x25519
+++ /dev/null
@@ -1,4 +0,0 @@
-source BouncyCastle r1rv76 https://github.com/bcgit/bc-java/blob/r1rv76/core/src/main/java/org/bouncycastle/math/ec/rfc7748/X25519.java#L73
-parameter a24
-assume a24 = (a+2)/4
-coords xz
diff --git a/test/data/formulas/dbl-bc-r1rv76-x25519.op3 b/test/data/formulas/dbl-bc-r1rv76-x25519.op3
deleted file mode 100644
index 86f2e50..0000000
--- a/test/data/formulas/dbl-bc-r1rv76-x25519.op3
+++ /dev/null
@@ -1,9 +0,0 @@
-pa = X1 + Z1
-pb = X1 - Z1
-pa = pa^2
-pb = pb^2
-X3 = pa * pb
-pa = pa - pb
-Z3 = pa * a24
-Z3 = Z3 + pb
-Z3 = Z3 * pa
diff --git a/test/data/formulas/dbl-bearssl-v06 b/test/data/formulas/dbl-bearssl-v06
deleted file mode 100644
index 9479888..0000000
--- a/test/data/formulas/dbl-bearssl-v06
+++ /dev/null
@@ -1,2 +0,0 @@
-source BearSSL v0.6 https://bearssl.org/gitweb/?p=BearSSL;a=blob;f=src/ec/ec_prime_i15.c;h=f86dbe6ff0dbc036af470e369048c4ae02d33337;hb=HEAD#l214
-coords jacobian
diff --git a/test/data/formulas/dbl-bearssl-v06.op3 b/test/data/formulas/dbl-bearssl-v06.op3
deleted file mode 100644
index c89c340..0000000
--- a/test/data/formulas/dbl-bearssl-v06.op3
+++ /dev/null
@@ -1,20 +0,0 @@
-t1 = Z1^2
-t2 = X1 - t1
-t1 = t1 + X1
-t3 = t1 * t2
-t1 = t3 + t3
-t1 = t1 + t3
-t3 = Y1^2
-t3 = t3 + t3
-t2 = X1 * t3
-t2 = t2 + t2
-X = t1^2
-X = X - t2
-X3 = X - t2
-t4 = Y1 * Z1
-Z3 = t4 + t4
-t2 = t2 - X3
-Y = t1 * t2
-t4 = t3^2
-Y = Y - t4
-Y3 = Y - t4
diff --git a/test/data/formulas/dbl-boringssl-p224 b/test/data/formulas/dbl-boringssl-p224
deleted file mode 100644
index db28389..0000000
--- a/test/data/formulas/dbl-boringssl-p224
+++ /dev/null
@@ -1,2 +0,0 @@
-source BoringSSL bfa8369 https://github.com/google/boringssl/blob/bfa8369795b7533a222a72b7a1bc928941cd66bf/crypto/fipsmodule/ec/p224-64.c#L591
-coords jacobian-3
diff --git a/test/data/formulas/dbl-boringssl-p224.op3 b/test/data/formulas/dbl-boringssl-p224.op3
deleted file mode 100644
index a0d6fe8..0000000
--- a/test/data/formulas/dbl-boringssl-p224.op3
+++ /dev/null
@@ -1,20 +0,0 @@
-delta = Z1^2
-gamma = Y1^2
-beta = X1 * gamma
-ftmp = X1 - delta
-ftmp2 = X1 + delta
-ftmp2 = 3 * ftmp2
-alpha = ftmp * ftmp2
-tmp = alpha^2
-ftmp = 8 * beta
-X3 = tmp - ftmp
-delta = delta + gamma
-ftmp = Y1 + Z1
-tmp = ftmp^2
-Z3 = tmp - delta
-beta = 4 * beta
-beta = beta - X3
-tmp = alpha * beta
-tmp2 = gamma^2
-tmp2 = 8 * tmp2
-Y3 = tmp - tmp2
diff --git a/test/data/formulas/dbl-gecc-321 b/test/data/formulas/dbl-gecc-321
deleted file mode 100644
index 33c3b85..0000000
--- a/test/data/formulas/dbl-gecc-321
+++ /dev/null
@@ -1,4 +0,0 @@
-source GECC Algorithm 3.21
-parameter half
-assume half = 1/2
-coords jacobian-3
diff --git a/test/data/formulas/dbl-gecc-321.op3 b/test/data/formulas/dbl-gecc-321.op3
deleted file mode 100644
index b9e7697..0000000
--- a/test/data/formulas/dbl-gecc-321.op3
+++ /dev/null
@@ -1,17 +0,0 @@
-T1 = Z1^2
-T2 = X1 - T1
-T1 = X1 + T1
-T2 = T2 * T1
-T2 = 3 * T2
-Y3 = 2 * Y1
-Z3 = Y3 * Z1
-Y3 = Y3^2
-T3 = Y3 * X1
-Y3 = Y3^2
-Y3 = Y3 * half
-X3 = T2^2
-T1 = 2 * T3
-X3 = X3 - T1
-T1 = T3 - X3
-T1 = T1 * T2
-Y3 = T1 - Y3
diff --git a/test/data/formulas/dbl-hacl-x25519 b/test/data/formulas/dbl-hacl-x25519
deleted file mode 100644
index b2a1d00..0000000
--- a/test/data/formulas/dbl-hacl-x25519
+++ /dev/null
@@ -1,4 +0,0 @@
-source HACL* https://github.com/hacl-star/hacl-star/blob/v0.3.0/specs/Spec.Curve25519.fst#L80C9-L80C9
-parameter am24
-assume am24 = (a-2)/4
-coords xz
diff --git a/test/data/formulas/dbl-hacl-x25519.op3 b/test/data/formulas/dbl-hacl-x25519.op3
deleted file mode 100644
index 8b315db..0000000
--- a/test/data/formulas/dbl-hacl-x25519.op3
+++ /dev/null
@@ -1,9 +0,0 @@
-a = X1 + Z1
-b = X1 - Z1
-aa = a^2
-bb = b^2
-e = aa - bb
-e121665 = e * am24
-aa_e121665 = e121665 + aa
-X3 = aa * bb
-Z3 = e * aa_e121665
diff --git a/test/data/formulas/dbl-ipp-x25519 b/test/data/formulas/dbl-ipp-x25519
deleted file mode 100644
index 9010ee9..0000000
--- a/test/data/formulas/dbl-ipp-x25519
+++ /dev/null
@@ -1,4 +0,0 @@
-source Intel IPP crypto https://github.com/intel/ipp-crypto/blob/ippcp_2021.9.0/sources/ippcp/crypto_mb/src/x25519/ifma_x25519.c#L1689
-parameter a24
-assume a24 = (a+2)/4
-coords xz
diff --git a/test/data/formulas/dbl-ipp-x25519.op3 b/test/data/formulas/dbl-ipp-x25519.op3
deleted file mode 100644
index baaeb54..0000000
--- a/test/data/formulas/dbl-ipp-x25519.op3
+++ /dev/null
@@ -1,9 +0,0 @@
-A = X1 + Z1
-B = X1 - Z1
-A = A^2
-B = B^2
-C = A - B
-D = a24 * C
-D = D + B
-X3 = A * B
-Z3 = C * D
diff --git a/test/data/formulas/dbl-libgcrypt-v1102 b/test/data/formulas/dbl-libgcrypt-v1102
deleted file mode 100644
index fdb3878..0000000
--- a/test/data/formulas/dbl-libgcrypt-v1102
+++ /dev/null
@@ -1,2 +0,0 @@
-source libgcrypt v1.10.2 https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=blob;f=mpi/ec.c;h=c24921eea8bea8363a503d6d6071b116c176d8e5;hb=1c5cbacf3d88dded5063e959ee68678ff7d0fa56#l1219
-coords jacobian
diff --git a/test/data/formulas/dbl-libgcrypt-v1102.op3 b/test/data/formulas/dbl-libgcrypt-v1102.op3
deleted file mode 100644
index 3ae81dd..0000000
--- a/test/data/formulas/dbl-libgcrypt-v1102.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-l1 = X1^2
-l1 = l1 * 3
-t1 = Z1^4
-t1 = t1 * a
-l1 = l1 + t1
-Z3 = Y1 * Z1
-Z3 = Z3 * 2
-t2 = Y1^2
-l2 = t2 * X1
-l2 = l2 * 4
-X3 = l1^2
-t1 = l2 * 2
-X3 = X3 - t1
-t2 = t2^2
-l3 = t2 * 8
-Y3 = l2 - X3
-Y3 = Y3 * l1
-Y3 = Y3 - l3
diff --git a/test/data/formulas/dbl-libressl-v382 b/test/data/formulas/dbl-libressl-v382
deleted file mode 100644
index 1f0c618..0000000
--- a/test/data/formulas/dbl-libressl-v382
+++ /dev/null
@@ -1,2 +0,0 @@
-source LibreSSL v3.8.2 https://github.com/libressl/openbsd/blob/libressl-v3.8.2/src/lib/libcrypto/ec/ecp_smpl.c#L654
-coords Jacobian
diff --git a/test/data/formulas/dbl-libressl-v382.op3 b/test/data/formulas/dbl-libressl-v382.op3
deleted file mode 100644
index 2bb4541..0000000
--- a/test/data/formulas/dbl-libressl-v382.op3
+++ /dev/null
@@ -1,20 +0,0 @@
-n0 = X1^2
-n1 = n0 * 2
-n0 = n0 + n1
-n1 = Z1^2
-n1 = n1^2
-n1 = a * n1
-n1 = n0 + n1
-n0 = Y1 * Z1
-Z3 = 2 * n0
-n3 = Y1^2
-n2 = X1 * n3
-n2 = 4 * n2
-n0 = 2 * n2
-X3 = n1^2
-X3 = X3 - n0
-n0 = n3^2
-n3 = 8 * n0
-n0 = n2 - X3
-n0 = n1 * n0
-Y3 = n0 - n3
diff --git a/test/data/formulas/dbl-secp256k1-v040 b/test/data/formulas/dbl-secp256k1-v040
deleted file mode 100644
index 1ed844d..0000000
--- a/test/data/formulas/dbl-secp256k1-v040
+++ /dev/null
@@ -1,2 +0,0 @@
-source libsecp256k1 v0.4.0 https://github.com/bitcoin-core/secp256k1/blob/v0.4.0/src/group_impl.h#L406
-coords Jacobian
diff --git a/test/data/formulas/dbl-secp256k1-v040.op3 b/test/data/formulas/dbl-secp256k1-v040.op3
deleted file mode 100644
index 18d0c06..0000000
--- a/test/data/formulas/dbl-secp256k1-v040.op3
+++ /dev/null
@@ -1,15 +0,0 @@
-Z3 = Y1*Z1
-S = Y1^2
-L = X1^2
-L = 3*L
-L = L/2
-T = -S
-T = T*X1
-X3 = L^2
-X3 = X3+T
-X3 = X3+T
-S = S^2
-T = T+X3
-Y3 = T*L
-Y3 = Y3+S
-Y3 = -Y3
diff --git a/test/data/formulas/dbl-sunec-v21 b/test/data/formulas/dbl-sunec-v21
deleted file mode 100644
index 663793a..0000000
--- a/test/data/formulas/dbl-sunec-v21
+++ /dev/null
@@ -1,2 +0,0 @@
-source Java JDK 21 https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.crypto.ec/share/classes/sun/security/ec/ECOperations.java#L220
-coords projective-3
diff --git a/test/data/formulas/dbl-sunec-v21-ed25519 b/test/data/formulas/dbl-sunec-v21-ed25519
deleted file mode 100644
index f20095f..0000000
--- a/test/data/formulas/dbl-sunec-v21-ed25519
+++ /dev/null
@@ -1,2 +0,0 @@
-source Java JDK 21 https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.crypto.ec/share/classes/sun/security/ec/ed/Ed25519Operations.java#L184
-coords extended-1
diff --git a/test/data/formulas/dbl-sunec-v21-ed25519.op3 b/test/data/formulas/dbl-sunec-v21-ed25519.op3
deleted file mode 100644
index 9f25c7e..0000000
--- a/test/data/formulas/dbl-sunec-v21-ed25519.op3
+++ /dev/null
@@ -1,14 +0,0 @@
-t1 = X1 + Y1
-t1 = t1^2
-X = X1^2
-Y = Y1^2
-t2 = X + Y
-Z = Z1^2
-Z = Z * 2
-T = t2 - t1
-t1 = X - Y
-Z = Z + t1
-X3 = T * Z
-Y3 = t1 * t2
-T3 = T * t2
-Z3 = Z * t1
diff --git a/test/data/formulas/dbl-sunec-v21.op3 b/test/data/formulas/dbl-sunec-v21.op3
deleted file mode 100644
index 7480ec6..0000000
--- a/test/data/formulas/dbl-sunec-v21.op3
+++ /dev/null
@@ -1,29 +0,0 @@
-t0 = X1^2
-t1 = Y1^2
-t2 = Z1^2
-t3 = X1 * Y1
-t4 = Y1 * Z1
-t3 = t3 + t3
-Z = Z1 * X1
-Z = Z * 2
-Y = t2 * b
-Y = Y - Z
-Y = 3 * Y
-X = t1 - Y
-Y = Y + t1
-Y = Y * X
-X = X * t3
-t2 = t2 * 3
-Z = Z * b
-Z = Z - t2
-Z = Z - t0
-Z = Z * 3
-t0 = t0 * 3
-t0 = t0 - t2
-t0 = t0 * Z
-Y3 = Y + t0
-t4 = t4 + t4
-Z = Z * t4
-X3 = X - Z
-Z = t4 * t1
-Z3 = Z * 4
diff --git a/test/data/formulas/ladd-bc-r1rv76-x25519 b/test/data/formulas/ladd-bc-r1rv76-x25519
deleted file mode 100644
index 01cc06d..0000000
--- a/test/data/formulas/ladd-bc-r1rv76-x25519
+++ /dev/null
@@ -1,5 +0,0 @@
-source BouncyCastle r1rv76 https://github.com/bcgit/bc-java/blob/r1rv76/core/src/main/java/org/bouncycastle/math/ec/rfc7748/X25519.java#L111
-parameter a24
-assume a24 = (a+2)/4
-assume Z1 = 1
-coords xz
diff --git a/test/data/formulas/ladd-bc-r1rv76-x25519.op3 b/test/data/formulas/ladd-bc-r1rv76-x25519.op3
deleted file mode 100644
index 2859b26..0000000
--- a/test/data/formulas/ladd-bc-r1rv76-x25519.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-t1 = X3 + Z3
-X3 = X3 - Z3
-Z3 = X2 + Z2
-X2 = X2 - Z2
-t1 = t1 * X2
-X3 = X3 * Z3
-Z3 = Z3^2
-X2 = X2^2
-t2 = Z3 - X2
-Z2 = t2 * a24
-Z2 = Z2 + X2
-Z4 = Z2 * t2
-X4 = X2 * Z3
-_X3 = t1 + X3
-Z3 = t1 - X3
-X5 = _X3^2
-Z3 = Z3^2
-Z5 = X1 * Z3
diff --git a/test/data/formulas/ladd-boringssl-x25519 b/test/data/formulas/ladd-boringssl-x25519
deleted file mode 100644
index a1ed9a9..0000000
--- a/test/data/formulas/ladd-boringssl-x25519
+++ /dev/null
@@ -1,5 +0,0 @@
-source BoringSSL bfa8369 https://github.com/google/boringssl/blob/bfa8369795b7533a222a72b7a1bc928941cd66bf/crypto/curve25519/curve25519.c#L624
-parameter a24
-assume a24 = (a+2)/4
-assume Z1 = 1
-coords xz
diff --git a/test/data/formulas/ladd-boringssl-x25519.op3 b/test/data/formulas/ladd-boringssl-x25519.op3
deleted file mode 100644
index 738d213..0000000
--- a/test/data/formulas/ladd-boringssl-x25519.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-tmp0 = X3 - Z3
-tmp1 = X2 - Z2
-X2 = X2 + Z2
-Z2 = X3 + Z3
-Z3 = tmp0 * X2
-Z2 = Z2 * tmp1
-tmp0 = tmp1^2
-tmp1 = X2^2
-X3 = Z3 + Z2
-Z2 = Z3 - Z2
-X4 = tmp1 * tmp0
-tmp1 = tmp1 - tmp0
-Z2 = Z2^2
-Z3 = tmp1 * a24
-X5 = X3^2
-tmp0 = tmp0 + Z3
-Z5 = X1 * Z2
-Z4 = tmp1 * tmp0
diff --git a/test/data/formulas/ladd-botan-x25519 b/test/data/formulas/ladd-botan-x25519
deleted file mode 100644
index ae1571d..0000000
--- a/test/data/formulas/ladd-botan-x25519
+++ /dev/null
@@ -1,4 +0,0 @@
-source Botan 3.2.0 https://github.com/randombit/botan/blob/3.2.0/src/lib/pubkey/curve25519/donna.cpp#L299
-coords xz
-parameter am24
-assume am24 = (a-2)/4
diff --git a/test/data/formulas/ladd-botan-x25519.op3 b/test/data/formulas/ladd-botan-x25519.op3
deleted file mode 100644
index b375514..0000000
--- a/test/data/formulas/ladd-botan-x25519.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-Z1new = X2 - Z2
-X1new = X2 + Z2
-Z2new = X3 - Z3
-X2new = X3 + Z3
-xxprime = X2new * Z1new
-zzprime = Z2new * X1new
-zzprime_new = xxprime - zzprime
-xxprime_new = xxprime + zzprime
-X5 = xxprime_new^2
-zzzprime = zzprime_new^2
-Z5 = zzzprime * X1
-xx = X1new^2
-zz = Z1new^2
-X4 = xx * zz
-zz = xx - zz
-zzz = zz * am24
-zzz = zzz + xx
-Z4 = zz * zzz
diff --git a/test/data/formulas/ladd-go-1214 b/test/data/formulas/ladd-go-1214
deleted file mode 100644
index c6ca9da..0000000
--- a/test/data/formulas/ladd-go-1214
+++ /dev/null
@@ -1,5 +0,0 @@
-source go crypto/ecdh/x25519 https://github.com/golang/go/blob/go1.21.4/src/crypto/ecdh/x25519.go#L86
-parameter a24
-assume a24 = (a+2)/4
-assume Z1 = 1
-coords xz
diff --git a/test/data/formulas/ladd-go-1214.op3 b/test/data/formulas/ladd-go-1214.op3
deleted file mode 100644
index 3bf8e7d..0000000
--- a/test/data/formulas/ladd-go-1214.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-t0 = X3-Z3
-t1 = X2-Z2
-X2 = X2+Z2
-Z2 = X3+Z3
-Z3 = t0*X2
-Z2 = Z2*t1
-t0 = t1^2
-t1 = X2^2
-X3 = Z3+Z2
-Z2 = Z3-Z2
-X4 = t1*t0
-t1 = t1-t0
-Z2 = Z2^2
-Z3 = t1 * a24
-X5 = X3^2
-t0 = t0+Z3
-Z5 = X1*Z2
-Z4 = t1*t0
diff --git a/test/data/formulas/ladd-hacl-x25519 b/test/data/formulas/ladd-hacl-x25519
deleted file mode 100644
index ece09fc..0000000
--- a/test/data/formulas/ladd-hacl-x25519
+++ /dev/null
@@ -1,5 +0,0 @@
-source HACL* https://github.com/hacl-star/hacl-star/blob/v0.3.0/specs/Spec.Curve25519.fst#L56
-parameter am24
-assume am24 = (a-2)/4
-assume Z1 = 1
-coords xz
diff --git a/test/data/formulas/ladd-hacl-x25519.op3 b/test/data/formulas/ladd-hacl-x25519.op3
deleted file mode 100644
index 7893eb9..0000000
--- a/test/data/formulas/ladd-hacl-x25519.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-a = X2 + Z2
-b = X2 - Z2
-c = X3 + Z3
-d = X3 - Z3
-da = d * a
-cb = c * b
-X3 = da + cb
-Z3 = da - cb
-aa = a^2
-bb = b^2
-X5 = X3^2
-Z3 = Z3^2
-e = aa - bb
-e121665 = e * am24
-aa_e121665 = aa + e121665
-X4 = aa * bb
-Z4 = e * aa_e121665
-Z5 = Z3 * X1
diff --git a/test/data/formulas/ladd-openssl-x25519 b/test/data/formulas/ladd-openssl-x25519
deleted file mode 100644
index 5f94535..0000000
--- a/test/data/formulas/ladd-openssl-x25519
+++ /dev/null
@@ -1,5 +0,0 @@
-source OpenSSL 3.1.4 https://github.com/openssl/openssl/blob/openssl-3.1.4/crypto/ec/curve25519.c#L211
-parameter a24
-assume a24 = (a+2)/4
-assume Z1 = 1
-coords xz
diff --git a/test/data/formulas/ladd-openssl-x25519.op3 b/test/data/formulas/ladd-openssl-x25519.op3
deleted file mode 100644
index f781529..0000000
--- a/test/data/formulas/ladd-openssl-x25519.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-tmp0 = X3 - Z3
-tmp1 = X2 - Z2
-X2 = X2 + Z2
-Z2 = X3 + Z3
-Z3 = X2 * tmp0
-Z2 = Z2 * tmp1
-tmp0 = tmp1^2
-tmp1 = X2^2
-X3 = Z3 + Z2
-Z2 = Z3 - Z2
-X4 = tmp1 * tmp0
-tmp1 = tmp1 - tmp0
-Z2 = Z2^2
-Z3 = tmp1 * a24
-X5 = X3^2
-tmp0 = tmp0 + Z3
-Z5 = X1 * Z2
-Z4 = tmp1 * tmp0
diff --git a/test/data/formulas/ladd-rfc7748 b/test/data/formulas/ladd-rfc7748
deleted file mode 100644
index 18fd36c..0000000
--- a/test/data/formulas/ladd-rfc7748
+++ /dev/null
@@ -1,5 +0,0 @@
-source RFC 7748
-parameter am24
-assume am24 = (a-2)/4
-assume Z1 = 1
-coords xz
diff --git a/test/data/formulas/ladd-rfc7748.op3 b/test/data/formulas/ladd-rfc7748.op3
deleted file mode 100644
index 8ea3d94..0000000
--- a/test/data/formulas/ladd-rfc7748.op3
+++ /dev/null
@@ -1,18 +0,0 @@
-A = X2 + Z2
-AA = A^2
-B = X2 - Z2
-BB = B^2
-E = AA - BB
-C = X3 + Z3
-D = X3 - Z3
-DA = D * A
-CB = C * B
-DApCB = DA + CB
-X5 = DApCB^2
-DAmCB = DA - CB
-DAmCB2 = DAmCB^2
-Z5 = X1 * DAmCB2
-X4 = AA * BB
-E24 = E * am24
-AAE = AA + E24
-Z4 = E * AAE
diff --git a/test/data/formulas/madd-secp256k1-v040 b/test/data/formulas/madd-secp256k1-v040
deleted file mode 100644
index 54341ee..0000000
--- a/test/data/formulas/madd-secp256k1-v040
+++ /dev/null
@@ -1,2 +0,0 @@
-source libsecp256k1 v0.4.0 https://github.com/bitcoin-core/secp256k1/blob/v0.4.0/src/group_impl.h#L670
-coords Jacobian
diff --git a/test/data/formulas/madd-secp256k1-v040.op3 b/test/data/formulas/madd-secp256k1-v040.op3
deleted file mode 100644
index 716a51f..0000000
--- a/test/data/formulas/madd-secp256k1-v040.op3
+++ /dev/null
@@ -1,30 +0,0 @@
-zz = Z1^2
-u1 = X1
-u2 = X2*zz
-s1 = Y1
-s2 = Y2*zz
-s2 = s2*Z1
-t = u1+u2
-m = s1+s2
-rr = t^2
-malt = -u2
-tt = u1*malt
-rr = rr+tt
-rralt = s1*2
-malt = malt+u1
-rralt = rr
-malt = m
-n = malt^2
-q = -t
-q = q*n
-n = n^2
-t = rralt^2
-Z3 = Z1*malt
-t = t+q
-X3 = t
-t = t*2
-t = t+q
-t = t*rralt
-t = t+n
-Y3 = -t
-Y3 = Y3/2 \ No newline at end of file