diff --git a/pkg/precompiles.sty b/pkg/precompiles.sty index d281722d..36db76e3 100644 --- a/pkg/precompiles.sty +++ b/pkg/precompiles.sty @@ -126,59 +126,120 @@ \newcol{\csEcmul} {CS\_ECMUL}{CIRCUIT\_SELECTOR\_ECMUL} \newcol{\csEcpairing} {CS\_ECPAIRING}{CIRCUIT\_SELECTOR\_ECPAIRING} \newcol{\csGTwo} {CS\_G2\_MEMBERSHIP}{CIRCUIT\_SELECTOR\_G2\_MEMBERSHIP} -\newcol{\trivialPairing} {TRIVIAL\_PAIRING}{OVERALL\_TRIVIAL\_PAIRING} +\newcol{\trivialPairing} {TRIVIAL\_PAIRING}{OVERALL\_TRIVIAL\_PAIRING} % System of constraints +\define@cmdkey [ECDATA] {var} {anchorRow} {} +\define@cmdkey [ECDATA] {var} {relOffset} {} +\define@cmdkey [ECDATA] {var} {xHi} {} +\define@cmdkey [ECDATA] {var} {xLo} {} +\define@cmdkey [ECDATA] {var} {yHi} {} +\define@cmdkey [ECDATA] {var} {yLo} {} +\define@cmdkey [ECDATA] {var} {xSquareHi} {} +\define@cmdkey [ECDATA] {var} {xSquareLo} {} +\define@cmdkey [ECDATA] {var} {ySquareHi} {} +\define@cmdkey [ECDATA] {var} {ySquareLo} {} +\define@cmdkey [ECDATA] {var} {xCubeHi} {} +\define@cmdkey [ECDATA] {var} {xCubeLo} {} +\define@cmdkey [ECDATA] {var} {xCubePlusThreeHi} {} +\define@cmdkey [ECDATA] {var} {xCubePlusThreeLo} {} +\define@cmdkey [ECDATA] {var} {xImHi} {} +\define@cmdkey [ECDATA] {var} {xImLo} {} +\define@cmdkey [ECDATA] {var} {xReHi} {} +\define@cmdkey [ECDATA] {var} {xReLo} {} +\define@cmdkey [ECDATA] {var} {yImHi} {} +\define@cmdkey [ECDATA] {var} {yImLo} {} +\define@cmdkey [ECDATA] {var} {yReHi} {} +\define@cmdkey [ECDATA] {var} {yReLo} {} + +\presetkeys [ECDATA] {var} { + anchorRow = \missingParameter , + relOffset = \missingParameter , + xHi = \missingParameter , + xLo = \missingParameter , + yHi = \missingParameter , + yLo = \missingParameter , + xSquareHi = \missingParameter , + xSquareLo = \missingParameter , + ySquareHi = \missingParameter , + ySquareLo = \missingParameter , + xCubeHi = \missingParameter , + xCubeLo = \missingParameter , + xCubePlusThreeHi = \missingParameter, + xCubePlusThreeLo = \missingParameter, + xImHi = \missingParameter , + xImLo = \missingParameter , + xReHi = \missingParameter , + xReLo = \missingParameter , + yImHi = \missingParameter , + yImLo = \missingParameter , + yReHi = \missingParameter , + yReLo = \missingParameter +}{} + + \newcommand{\callCOneMembership} {\texttt{callToC1Membership}} \newcommand{\callToCOneMembership}[6]{ \callCOneMembership_{#1} \left[ \begin{array}{ll} \utt{Rel. row offset:} & #2 \\ - \utt{First argument (high):} & \col{#3} \\ - \utt{First argument (low):} & \col{#4} \\ - \utt{Second argument (high):} & \col{#5} \\ - \utt{Second argument (low):} & \col{#6} \\ + \utt{x coord. hi:} & #3 \\ + \utt{x coord. lo:} & #4 \\ + \utt{y coord. hi:} & #5 \\ + \utt{y coord. lo:} & #6 \\ \end{array} \right]} \newcommand{\callCOneMembershipWCP} {\texttt{callToC1MembershipWCP}} -\newcommand{\callToCOneMembershipWCP}[6]{ - \callCOneMembershipWCP_{#1} +\newcommand{\callToCOneMembershipWCP}[1]{ + \setkeys[ECDATA]{var}{#1} + \callCOneMembershipWCP_{\cmdECDATA@var@anchorRow} \left[ \begin{array}{ll} - \utt{Rel. row offset:} & #2 \\ - \utt{First argument (high):} & \col{#3} \\ - \utt{First argument (low):} & \col{#4} \\ - \utt{Second argument (high):} & \col{#5} \\ - \utt{Second argument (low):} & \col{#6} \\ + \utt{Rel. row offset:} & \cmdECDATA@var@relOffset \\ + \utt{x coord. hi:} & \cmdECDATA@var@xHi \\ + \utt{x coord. lo:} & \cmdECDATA@var@xLo \\ + \utt{y coord. hi:} & \cmdECDATA@var@yHi \\ + \utt{y coord. lo:} & \cmdECDATA@var@yLo \\ + \utt{LHS of (E) hi:} & \cmdECDATA@var@ySquareHi \\ + \utt{LHS of (E) lo:} & \cmdECDATA@var@ySquareLo \\ + \utt{RHS of (E) hi:} & \cmdECDATA@var@xCubePlusThreeHi \\ + \utt{RHS of (E) lo:} & \cmdECDATA@var@xCubePlusThreeLo \\ + \utt{Where (E) is:} & y^2 = x^3 + 3 \end{array} \right]} \newcommand{\callCOneMembershipEXT} {\texttt{callToC1MembershipEXT}} -\newcommand{\callToCOneMembershipEXT}[6]{ - \callCOneMembershipEXT_{#1} +\newcommand{\callToCOneMembershipEXT}[1]{ + \setkeys[ECDATA]{var}{#1} + \callCOneMembershipEXT_{\cmdECDATA@var@anchorRow} \left[ \begin{array}{ll} - \utt{Rel. row offset:} & #2 \\ - \utt{First argument (high):} & \col{#3} \\ - \utt{First argument (low):} & \col{#4} \\ - \utt{Second argument (high):} & \col{#5} \\ - \utt{Second argument (low):} & \col{#6} \\ + \utt{Rel. row offset:} & \cmdECDATA@var@relOffset \\ + \utt{x coord. hi:} & \cmdECDATA@var@xHi \\ + \utt{x coord. lo:} & \cmdECDATA@var@xLo \\ + \utt{y coord. hi:} & \cmdECDATA@var@yHi \\ + \utt{y coord. lo:} & \cmdECDATA@var@yLo \\ + \utt{square of x coord. hi:} & \cmdECDATA@var@xSquareHi \\ + \utt{square of x coord. lo:} & \cmdECDATA@var@xSquareLo \\ + \utt{cube of x coord. hi:} & \cmdECDATA@var@xCubeHi \\ + \utt{cube of x coord. lo:} & \cmdECDATA@var@xCubeLo \\ \end{array} \right]} \newcommand{\callWellFormedCoordinates} {\texttt{callToWellFormedCoordinates}} -\newcommand{\callToWellFormedCoordinates}[9]{ % TODO: a standard macro cannot have more than 9 arguments, thus here 'i' is hardcoded: use xkeyval - \callWellFormedCoordinates_{i} +\newcommand{\callToWellFormedCoordinates}[1]{ + \setkeys[ECDATA]{var}{#1} + \callWellFormedCoordinates_{\cmdECDATA@var@anchorRow} \left[ \begin{array}{ll} - \utt{Rel. row offset:} & #1 \\ - \utt{First argument (high):} & \col{#2} \\ - \utt{First argument (low):} & \col{#3} \\ - \utt{Second argument (high):} & \col{#4} \\ - \utt{Second argument (low):} & \col{#5} \\ - \utt{Third argument (high):} & \col{#6} \\ - \utt{Third argument (low):} & \col{#7} \\ - \utt{Fourth argument (high):} & \col{#8} \\ - \utt{Fourth argument (low):} & \col{#9} \\ + \utt{Rel. row offset:} & \cmdECDATA@var@relOffset \\ + \utt{x coord. imaginary hi:} & \cmdECDATA@var@xImHi \\ + \utt{x coord. imaginary lo:} & \cmdECDATA@var@xImLo \\ + \utt{x coord. real hi:} & \cmdECDATA@var@xReHi \\ + \utt{x coord. real lo:} & \cmdECDATA@var@xReLo \\ + \utt{y coord. imaginary hi:} & \cmdECDATA@var@yImHi \\ + \utt{y coord. imaginary lo:} & \cmdECDATA@var@yImLo \\ + \utt{y coord. real hi:} & \cmdECDATA@var@yReHi \\ + \utt{y coord. real lo:} & \cmdECDATA@var@yReLo \\ \end{array} \right]} % base 10 : 21888242871839275222246405745257275088696311157297823662689037894645226208583 diff --git a/pkg/xkeyval_macros/ext_calls.sty b/pkg/xkeyval_macros/ext_calls.sty index be478918..4744a3f8 100644 --- a/pkg/xkeyval_macros/ext_calls.sty +++ b/pkg/xkeyval_macros/ext_calls.sty @@ -29,13 +29,13 @@ \setkeys[EXT]{var}{#1} \extCallToAddModName _{\cmdEXT@var@anchorRow} \left[ \begin{array}{ll} - \utt{Rel. row offset:} & \cmdEXT@var@relOffset \\ - \utt{First argument (high):} & \cmdEXT@var@argOneHi \\ - \utt{First argument (low):} & \cmdEXT@var@argOneLo \\ - \utt{Second argument (high):} & \cmdEXT@var@argTwoHi \\ - \utt{Second argument (low):} & \cmdEXT@var@argTwoLo \\ - \utt{Third argument (high):} & \cmdEXT@var@argThreeHi \\ - \utt{Third argument (low):} & \cmdEXT@var@argThreeLo \\ + \utt{Rel. row offset:} & \cmdEXT@var@relOffset \\ + \utt{First argument hi:} & \cmdEXT@var@argOneHi \\ + \utt{First argument lo:} & \cmdEXT@var@argOneLo \\ + \utt{Second argument hi:} & \cmdEXT@var@argTwoHi \\ + \utt{Second argument lo:} & \cmdEXT@var@argTwoLo \\ + \utt{Third argument hi:} & \cmdEXT@var@argThreeHi \\ + \utt{Third argument lo:} & \cmdEXT@var@argThreeLo \\ \end{array} \right] } @@ -45,13 +45,13 @@ \setkeys[EXT]{var}{#1} \extCallToMulModName _{\cmdEXT@var@anchorRow} \left[ \begin{array}{ll} - \utt{Rel. row offset:} & \cmdEXT@var@relOffset \\ - \utt{First argument (high):} & \cmdEXT@var@argOneHi \\ - \utt{First argument (low):} & \cmdEXT@var@argOneLo \\ - \utt{Second argument (high):} & \cmdEXT@var@argTwoHi \\ - \utt{Second argument (low):} & \cmdEXT@var@argTwoLo \\ - \utt{Third argument (high):} & \cmdEXT@var@argThreeHi \\ - \utt{Third argument (low):} & \cmdEXT@var@argThreeLo \\ + \utt{Rel. row offset:} & \cmdEXT@var@relOffset \\ + \utt{First argument hi:} & \cmdEXT@var@argOneHi \\ + \utt{First argument lo:} & \cmdEXT@var@argOneLo \\ + \utt{Second argument hi:} & \cmdEXT@var@argTwoHi \\ + \utt{Second argument lo:} & \cmdEXT@var@argTwoLo \\ + \utt{Third argument hi:} & \cmdEXT@var@argThreeHi \\ + \utt{Third argument lo:} & \cmdEXT@var@argThreeLo \\ \end{array} \right] } diff --git a/prc/ecdata/specialized/ecpairing.tex b/prc/ecdata/specialized/ecpairing.tex index 2a84eff3..5590bb45 100644 --- a/prc/ecdata/specialized/ecpairing.tex +++ b/prc/ecdata/specialized/ecpairing.tex @@ -42,7 +42,18 @@ \begin{description} \item[\underline{Row $n^°(i+4)$:}] \[ - \callToWellFormedCoordinates{4}{\locBXImHi}{\locBXImLo}{\locBXReHi}{\locBXReLo}{\locBYImHi}{\locBYImLo}{\locBYReHi}{\locBYReLo} + \callToWellFormedCoordinates { + anchorRow = i , + relOffset = 4 , + xImHi = \locBXImHi , + xImLo = \locBXImLo , + xReHi = \locBXReHi , + xReLo = \locBXReLo , + yImHi = \locBYImHi , + yImLo = \locBYImLo , + yReHi = \locBYReHi , + yReLo = \locBYReLo , + } \] \[ diff --git a/prc/ecdata/utils/c1_membership.tex b/prc/ecdata/utils/c1_membership.tex index 79874e8b..8fb4f1b2 100644 --- a/prc/ecdata/utils/c1_membership.tex +++ b/prc/ecdata/utils/c1_membership.tex @@ -2,16 +2,39 @@ \left\{ \begin{array}{l} \callToCOneMembership {i}{\relof} - {\locPXHi}{\locPXLo }{\locPYHi }{\locPYLo} \vspace{4mm} \\ + {\locPXHi}{\locPXLo}{\locPYHi}{\locPYLo} \vspace{4mm} \\ \qquad \qquad \iff \left\{ \begin{array}{l} - \callToCOneMembershipWCP{i}{\relof}{\locPXHi}{\locPXLo}{\locPYHi}{\locPYLo} \\ + \callToCOneMembershipWCP { + anchorRow = i , + relOffset = \relof , + xHi = \locPXHi , + xLo = \locPXLo , + yHi = \locPYHi , + yLo = \locPYLo , + ySquareHi = \locPYSquareHi , + ySquareLo = \locPYSquareLo , + xCubePlusThreeHi = \locPXCubePlusThreeHi , + xCubePlusThreeLo = \locPXCubePlusThreeLo , + } \\ \locPXIsInRange \define \wcpRes_{i+\relof} \\ \locPYIsInRange \define \wcpRes_{i+\relof+1} \\ \locPSatisfiesCubic \define \wcpRes_{i+\relof+2} \\ \vspace{1mm} \\ - % - \callToCOneMembershipEXT{i}{\relof}{\locPXHi}{\locPXLo}{\locPYHi}{\locPYLo} \\ + % + \callToCOneMembershipEXT { + anchorRow = i , + relOffset = \relof , + xHi = \locPXHi , + xLo = \locPXLo , + yHi = \locPYHi , + yLo = \locPYLo , + xSquareHi = \locPXSquareHi , + xSquareLo = \locPXSquareLo , + xCubeHi = \locPXCube , + xCubeLo = \locPXCube , + } + \\ \locPYSquareHi \define \extResHi_{i+\relof} \\ \locPYSquareLo \define \extResLo_{i+\relof} \\ \locPXSquareHi \define \extResHi_{i+\relof+1} \\ @@ -47,7 +70,18 @@ \[ \left\{ \begin{array}{l} - \callToCOneMembershipWCP{i}{\relof}{\locPXHi}{\locPXLo}{\locPYHi}{\locPYLo} \vspace{4mm} \\ + \callToCOneMembershipWCP { + anchorRow = i , + relOffset = \relof , + xHi = \locPXHi , + xLo = \locPXLo , + yHi = \locPYHi , + yLo = \locPYLo , + ySquareHi = \locPYSquareHi , + ySquareLo = \locPYSquareLo , + xCubePlusThreeHi = \locPXCubePlusThreeHi , + xCubePlusThreeLo = \locPXCubePlusThreeLo , + } \vspace{4mm} \\ \qquad \qquad \iff \left\{ \begin{array}{lcl} % \callToLt @@ -99,7 +133,18 @@ \[ \left\{ \begin{array}{l} - \callToCOneMembershipEXT{i}{\relof}{\locPXHi}{\locPXLo }{\locPYHi }{\locPYLo} \vspace{4mm} \\ + \callToCOneMembershipEXT { + anchorRow = i , + relOffset = \relof , + xHi = \locPXHi , + xLo = \locPXLo , + yHi = \locPYHi , + yLo = \locPYLo , + xSquareHi = \locPXSquareHi , + xSquareLo = \locPXSquareLo , + xCubeHi = \locPXCube , + xCubeLo = \locPXCube , + } \vspace{4mm} \\ \qquad \qquad \iff \left\{ \begin{array}{lcl} % \callToMulMod{i+\relof}{$\locPYHi$}{$\locPYLo$}{$\locPYHi$}{$\locPYLo$}{$\bnOuterPrimeHi$}{$\bnOuterPrimeLo$} diff --git a/prc/ecdata/utils/well_formed_coordinates.tex b/prc/ecdata/utils/well_formed_coordinates.tex index 11810ba6..37f8e4a6 100644 --- a/prc/ecdata/utils/well_formed_coordinates.tex +++ b/prc/ecdata/utils/well_formed_coordinates.tex @@ -1,6 +1,17 @@ \[ \left\{ \begin{array}{l} - \callToWellFormedCoordinates{\relof}{\locBXImHi}{\locBXImLo}{\locBXReHi}{\locBXReLo}{\locBYImHi}{\locBYImLo}{\locBYReHi}{\locBYReLo} \vspace{4mm} \\ + \callToWellFormedCoordinates { + anchorRow = i , + relOffset = \relof , + xImHi = \locBXImHi , + xImLo = \locBXImLo , + xReHi = \locBXReHi , + xReLo = \locBXReLo , + yImHi = \locBYImHi , + yImLo = \locBYImLo , + yReHi = \locBYReHi , + yReLo = \locBYReLo , + } \vspace{4mm} \\ \qquad \qquad \iff \left\{ \begin{array}{l} % \callToLt