Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 91 additions & 30 deletions pkg/precompiles.sty
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
28 changes: 14 additions & 14 deletions pkg/xkeyval_macros/ext_calls.sty
Original file line number Diff line number Diff line change
Expand Up @@ -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]
}

Expand All @@ -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]
}

Expand Down
13 changes: 12 additions & 1 deletion prc/ecdata/specialized/ecpairing.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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 ,
}
\]

\[
Expand Down
57 changes: 51 additions & 6 deletions prc/ecdata/utils/c1_membership.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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} \\
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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$}
Expand Down
13 changes: 12 additions & 1 deletion prc/ecdata/utils/well_formed_coordinates.tex
Original file line number Diff line number Diff line change
@@ -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
Expand Down