diff --git a/main.py b/main.py index 4f5ea16..edce589 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,4 @@ # Copyright (c) PARRRATE T&V 2021. All rights reserved. -import math import random from bu4.common_interface import with_common_interface @@ -9,7 +8,6 @@ from bu4.evaluation.synced import synced from bu4.parsing.toolchain.readfile import readfile from timesample import TimeSample - with TimeSample('all'): with TimeSample('sys0'): with TimeSample('compilation'): @@ -58,10 +56,8 @@ with TimeSample('all'): TimeSample.print(sys3) with TimeSample('sys1'): sys1 = with_common_interface(synced(readfile('src/sys1'))) - a_ = random.randrange(2 ** 16) - b_ = random.randrange(2 ** 16) - sys1 = sync(sys1.call(eproxy(a_))) - sys1 = sync(sys1.call(eproxy(b_))) - TimeSample.print(sys1, math.gcd(a_, b_)) + sys1 = sync(sys1.call(eproxy(5))) + sys1 = sync(sys1.call(eproxy(6))) + TimeSample.print(sys1) with TimeSample('sys4'): TimeSample.print(with_common_interface(synced(readfile('src/sys4')))) diff --git a/manual/main.md b/manual/main.md new file mode 100644 index 0000000..0b810c0 --- /dev/null +++ b/manual/main.md @@ -0,0 +1,15 @@ +```bu4 +/[method][object] +``` +```bu4 +/[object][virtual] +``` +```bu4 +/ + [accumulated] +/ + [accumulated] +/ + [accumulated] +[accumulator] +``` diff --git a/src/binary/@.bu4 b/src/binary/@.bu4 index 75b768f..432a94c 100644 --- a/src/binary/@.bu4 +++ b/src/binary/@.bu4 @@ -1,6 +1,7 @@ @b! @01 @zq +@lb @double @bitwise/@ @arithmetic/@ diff --git a/src/binary/lb.bu4 b/src/binary/lb.bu4 new file mode 100644 index 0000000..6922c71 --- /dev/null +++ b/src/binary/lb.bu4 @@ -0,0 +1,8 @@ +{ + (b) + /(zq)(lb)(hb!) + [lb] + [b] +| + b_lb +} diff --git a/src/collections/deque/@.bu4 b/src/collections/deque/@.bu4 index 166c1fe..a781e06 100644 --- a/src/collections/deque/@.bu4 +++ b/src/collections/deque/@.bu4 @@ -4,3 +4,4 @@ @push @length @reduce +@map diff --git a/src/collections/deque/map.bu4 b/src/collections/deque/map.bu4 new file mode 100644 index 0000000..9334e4a --- /dev/null +++ b/src/collections/deque/map.bu4 @@ -0,0 +1,43 @@ +{ + (map) + /(dequeMap) + (isEmpty)(lPopped)(lItem)(rPopped-unused)(rItem-unused) + / + { /[dequeMap][lPopped] | lPMapped } + /(isEmptyL)(lPoppedL-unused)(lItemL-unused)(rPoppedL)(rItemL) + { /[lItem][map] | item } + / + (g) /[rItemL]//[item]/[lPMapped]/[0] [g] + / + /[item][dequeSingle] + [isEmptyL] + [lPMapped] + / + [dequeEmpty] + [isEmpty] + [YC] +| + dequeLMap +} + +{ + (map) + /(dequeMap) + (isEmpty)(lPopped-unused)(lItem-unused)(rPopped)(rItem) + / + { /[dequeMap][rPopped] | rPMapped } + /(isEmptyR)(lPoppedR)(lItemR)(rPoppedR-unused)(rItemL-unused) + { /[rItem][map] | item } + / + (g) /[item]/[rPMapped]/[lItemR]//[0] [g] + / + /[item][dequeSingle] + [isEmptyR] + [rPMapped] + / + [dequeEmpty] + [isEmpty] + [YC] +| + dequeRMap +} diff --git a/src/core/@.bu4 b/src/core/@.bu4 index 63213b1..2f64864 100644 --- a/src/core/@.bu4 +++ b/src/core/@.bu4 @@ -4,3 +4,4 @@ @id @collector @compose +@extract diff --git a/src/core/extract.bu4 b/src/core/extract.bu4 new file mode 100644 index 0000000..ff70a82 --- /dev/null +++ b/src/core/extract.bu4 @@ -0,0 +1 @@ +{ (method)(object) /[method][object] | extract } diff --git a/src/math/@.bu4 b/src/math/@.bu4 index ac27bfe..69c2f05 100644 --- a/src/math/@.bu4 +++ b/src/math/@.bu4 @@ -1 +1,2 @@ @gcd +@exp diff --git a/src/math/exp.bu4 b/src/math/exp.bu4 new file mode 100644 index 0000000..2414fe1 --- /dev/null +++ b/src/math/exp.bu4 @@ -0,0 +1,29 @@ +{ + (_mul)(_zq)(_lb)(_halve)(_1) + /(exp) + (_e) + / + { /[exp] | _hexp} + (_x) + / + / + [_1] + / + [_x] + /[_e][_lb] + / + { /[_x][_hexp] | _hexpx } + / + [_hexpx] + / + [_hexpx] + [_mul] + [_mul] + / + (_x) + [_1] + /[_e][_zq] + [YC] +| + _exp +} \ No newline at end of file diff --git a/src/sys1.bu4 b/src/sys1.bu4 index c761f63..9002367 100644 --- a/src/sys1.bu4 +++ b/src/sys1.bu4 @@ -4,6 +4,7 @@ @ci { /[b_zq]/[b_div][_gcd] | gcd } +{ /[b1]/[b_halve]/[b_lb]/[b_zq]/[b_mul][_exp] | exp } (a)(b) @@ -12,6 +13,6 @@ /[b][n_to_b] / /[a][n_to_b] - [gcd] + [exp] [b_to_n] """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/src/sys4.bu4 b/src/sys4.bu4 index 286fd95..374a7e6 100644 --- a/src/sys4.bu4 +++ b/src/sys4.bu4 @@ -7,6 +7,6 @@ { /[b7]//[b1]//[b5]/[dequeEmpty][dequeLPush][dequeLPush][dequeLPush] | deque } / - /[deque] + ///[b_double][dequeRMap]//[b_double][dequeLMap][deque] [b_to_n] """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""