mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
initial commit
This commit is contained in:
commit
c2da007f40
1610 changed files with 398047 additions and 0 deletions
75
crypto/func/test/a6.fp
Normal file
75
crypto/func/test/a6.fp
Normal file
|
@ -0,0 +1,75 @@
|
|||
f(int a, int b, int c, int d, int e, int f) : (int, int) {
|
||||
var D = a * d - b * c;
|
||||
var Dx : int = e * d - b * f;
|
||||
var Dy : int = a * f - e * c;
|
||||
return (Dx / D, Dy / D);
|
||||
}
|
||||
|
||||
calc_phi() : int = {
|
||||
var n : int = 1;
|
||||
repeat (10) {
|
||||
n *= 10;
|
||||
}
|
||||
var p = var q = 1;
|
||||
do {
|
||||
(p, q) = (q, p + q);
|
||||
} until q > n;
|
||||
return muldivr(p, n, q);
|
||||
}
|
||||
|
||||
calc_sqrt2() : int = {
|
||||
var n = 1;
|
||||
repeat (70) { n *= 10; }
|
||||
var p = var q = 1;
|
||||
do {
|
||||
var t = p + q;
|
||||
(p, q) = (q, t + q);
|
||||
} until q > n;
|
||||
return muldivr(p, n, q);
|
||||
}
|
||||
|
||||
calc_phi() : int = {
|
||||
var n = 1;
|
||||
repeat (70) { n *= 10; }
|
||||
var p = var q = 1;
|
||||
do {
|
||||
(p, q) = (q, p + q);
|
||||
} until q > n;
|
||||
return muldivr(p, n, q);
|
||||
}
|
||||
|
||||
operator _/%_ infix 20;
|
||||
|
||||
(x : int) /% (y : int) : (int, int) = {
|
||||
return (x / y, x % y);
|
||||
}
|
||||
|
||||
{-
|
||||
_/%_ (int x, int y) : (int, int) = {
|
||||
return (x / y, x % y);
|
||||
}
|
||||
-}
|
||||
|
||||
rot < A : type, B : type, C : type >
|
||||
(x : A, y : B, z : C) : (B, C, A) {
|
||||
return (y, z, x);
|
||||
}
|
||||
|
||||
ataninv(base : int, q : int) : int { ;; computes base*atan(1/q)
|
||||
base /~= q;
|
||||
q *= - q;
|
||||
var sum : int = 0;
|
||||
var n = 1;
|
||||
do {
|
||||
sum += base /~ n;
|
||||
base /~= q;
|
||||
n += 2;
|
||||
} while base;
|
||||
return sum;
|
||||
}
|
||||
|
||||
calc_pi() : int {
|
||||
var base = 64;
|
||||
repeat (70) { base *= 10; }
|
||||
return (ataninv(base << 2, 5) - ataninv(base, 239)) >>~ 4;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue