library(numerics), special funs from crate puruspe

This commit is contained in:
David C. Norris
2025-08-10 10:01:01 -04:00
parent d83827b21f
commit af3792f79a
10 changed files with 1092 additions and 0 deletions

View File

@@ -4691,6 +4691,102 @@ impl Machine {
self.crypto_data_decrypt();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallBeta => {
self.beta();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteBeta => {
self.beta();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallBetaI => {
self.betai();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteBetaI => {
self.betai();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallInvBetaI => {
self.invbetai();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteInvBetaI => {
self.invbetai();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallGamma => {
self.gamma();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteGamma => {
self.gamma();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallLnGamma => {
self.ln_gamma();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteLnGamma => {
self.ln_gamma();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallGammP => {
self.gammp();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteGammP => {
self.gammp();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallInvGammP => {
self.invgammp();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteInvGammP => {
self.invgammp();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallGammQ => {
self.gammq();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteGammQ => {
self.gammq();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallErf => {
self.erf();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteErf => {
self.erf();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallErfc => {
self.erfc();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteErfc => {
self.erfc();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallInvErf => {
self.inverf();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteInvErf => {
self.inverf();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallInvErfc => {
self.inverfc();
step_or_fail!(self, self.machine_st.p += 1);
}
&Instruction::ExecuteInvErfc => {
self.inverfc();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallCryptoCurveScalarMult => {
self.crypto_curve_scalar_mult();
step_or_fail!(self, self.machine_st.p += 1);