TODO: * [x] Complex Type * [x] Complex-Float * [x] Complex Integer * [x] Complex Rational * [x] `(make-rectangular 1/2 2/4)` * [x] `(/ 10+10i 10+2i)` works in Kawa ~~(Lips convert to Float)~~ * [x] Complex NaN e.g. `+nan.0+5.0i` * [x] Complex Infinite e.g. `3.0+inf.0i` * [x] Mixed complex 1/2+0.1i (all combinations) * [x] Rational Complex literal * [x] inexact `#i1/2+2/4i` -> `(exact->inexact 1/2+2/4i)`. * [x] big num complex `10e+10i`. * [x] Float Type * [x] Rational * [x] BigInteger * [x] Number literals * [x] hex octal and binary and decimal literals (`#b` `#o` `#x` `#d`) * [x] binary/hex/octal with complex and rational `#b1/100` `#b100+100i` * [x] big literal numbers in scientific notation should parse as big int * [x] `#e` `#i` exact inexact literals that do conversion * [x] `#b#x` `#x#b` ~~replace in tokenizer~~ (1/4 == 0.25) * [x] `#i#b1/100` inexact rational binary * [x] big exact fractions `#e1e-1000` or `#e1.2e-1000` * [x] `+nan.0` and `-nan.0` return by parser * [x] proper negative 0 * [x] Case insensitive mnemonics * [x] string->number should parse all tokens `#[ieoxb]` * [x] proper casting and all combination of operations * [x] properly working `string->number` * [ ] Unit tests for operations (all types) * [x] `sqrt` * [x] `abs` * [x] nan * [x] inf * [x] `/` * [x] nan * [ ] inf * [x] number->string (check if they are ok) * [x] string->number * [x] `+` * [x] nan * [x] inf * [x] `-` * [ ] nan * [ ] inf * [x] `*` * [ ] nan * [ ] inf * [ ] modulo integer integer (test types) * [ ] quotient integer integer (test types) * [ ] reminder int int (test types) * [ ] max * [ ] min * [ ] gcd integer ... * [ ] lcm integer ... * [x] exp * [x] expt * [ ] log * [ ] trigonometry * [x] sin * [x] cos * [x] tan * [ ] asin * [ ] acos * [x] atan * [ ] round, truncate, floor, ceiling * [ ] positive? / negative? * [x] exact->inexact * [x] inexact->exact * [x] comparisons `<` `>` `<=` `>=` `=` * [x] nan * [x] inf Bugs - [x] https://github.com/jcubic/lips/issues/299 - [x] https://github.com/jcubic/lips/issues/300 - [x] https://github.com/jcubic/lips/issues/301 - [x] https://github.com/jcubic/lips/issues/340 - [x] https://github.com/jcubic/lips/issues/424 - [x] https://github.com/jcubic/lips/issues/426 - [x] https://github.com/jcubic/lips/issues/472
TODO:
(make-rectangular 1/2 2/4)(/ 10+10i 10+2i)works in Kawa(Lips convert to Float)+nan.0+5.0i3.0+inf.0i#i1/2+2/4i->(exact->inexact 1/2+2/4i).10e+10i.#b#o#x#d)#b1/100#b100+100i#e#iexact inexact literals that do conversion#b#x#x#breplace in tokenizer(1/4 == 0.25)#i#b1/100inexact rational binary#e1e-1000or#e1.2e-1000+nan.0and-nan.0return by parser#[ieoxb]string->numbersqrtabs/+-*<><=>==Bugs