view test/g200.ijs @ 0:e0bbaa717f41 draft default tip

lol J
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Mon, 25 Nov 2013 11:56:30 -0500
parents
children
line wrap: on
line source

NB. ^y ------------------------------------------------------------------

x =: 0.001 * _900+?4 5$2000
y =: 0.001 * _900+?4 5$2000
a =: x j. (*y)*(o.1)|y
a =: a,0,*/\4$0j1

exp=: (%!i._50) & (+/ .*) @ ((i._50)&(^~/))

5e_13 > | (^a)%~(^a)-exp a
a =!.5e_13 ^.^a
a =!.5e_13 ^^.a

1                      -: ^ 0
2.71828182845904523536 -: ^ 1
7.38905609893065022723 -: ^ 2
148.4131591025766      -: ^ 5

rou =: [:^ 0j2p1&% * i.    NB. roots of unity
([: */ 1: = rou ^ ])"0 i.4 5

0  < ^ _744.440  NB. _1074*^.2
0  = ^ _744.441
_  > ^  709.782  NB.  1024*^.2
_  = ^  709.783

0 = ^ __
0 = ^ __j5 __j_5

'domain error' -: ^ etx 'abc'
'domain error' -: ^ etx <'abc'

0 = ^_744.441j2e9
0 = ^_744.441j_2e9

'limit error' -: ^ etx _744.440j2e9
'limit error' -: ^ etx _744.440j_2e9

(j./        ^710+^. 2 1 o.0.01) = ^ 710j0.01
(j./        ^710+^. 2 1 o.1.57) = ^ 710j1.57
(j./_1  1 * ^710+^.|2 1 o.1.58) = ^ 710j1.58
(j./_1 _1 * ^710+^.|2 1 o.4.71) = ^ 710j4.71
(j./ 1 _1 * ^710+^. 2 1 o.1.57) = ^ 710j_1.57
(j./ 1 _1 * ^710+^. 2 1 o.0.01) = ^ 710j_0.01


NB. x^y -----------------------------------------------------------------

pow =: ^.@[ ^@* ]

(x=:x+0=x=:_50+?4$100)      (^-:pow) y=:        _50+?4 10$100
(x=:x+0=x=:_50+?4 10 2$100) (^-:pow) y=:   0.02*_50+?4 10$100
(x=:x+0=x=:o._50+?4 10$100) (^-:pow) y=:o. 0.01*_50+?4 10$100
(x=:x+0=x=:r./_50+?2 4$100) (^-:pow) y=:j./0.01*_50+?2 4 10$100

(a^ i.30) -: */\1,29$ a=: 2
(a^-i.30) -: */\1,29$%a=: 2
(a^ i.30) -: */\1,29$ a=:_2
(a^-i.30) -: */\1,29$%a=:_2
(a^ i.30) -: */\1,29$ a=: 2.45
(a^-i.30) -: */\1,29$%a=: 2.45
(a^ i.30) -: */\1,29$ a=:_2.45
(a^-i.30) -: */\1,29$%a=:_2.45
(a^ i.30) -: */\1,29$ a=: 2j1.6
(a^-i.30) -: */\1,29$%a=: 2j1.6
(a^ i.30) -: */\1,29$ a=: 2j_1.6
(a^-i.30) -: */\1,29$%a=: 2j_1.6
(a^ i.30) -: */\1,29$ a=:_2j1.6
(a^-i.30) -: */\1,29$%a=:_2j1.6
(a^ i.30) -: */\1,29$ a=:_2j_1.6
(a^-i.30) -: */\1,29$%a=:_2j_1.6

a -: a^1 [ a=: ?20$2e9
a -: a^1 [ a=:-?20$2e9
a -: a^1 [ a=:o._1e9+?20$2e9
a -: a^1 [ a=:j./_1e9+?2 20$2e9

(20$1) -: a^0 [ a=: ?20$2e9
(20$1) -: a^0 [ a=:-?20$2e9
(20$1) -: a^0 [ a=:o._1e9+?20$2e9
(20$1) -: a^0 [ a=:r./_1e7+?2 20$2e7

1 0 1 1 -: 0 0 1 1 ^ 0 1 0 1

1     -: 0^0
(9$1) -: (-:_5+i.9)^0

_ _ _ _ 1 0 0 0 0 -: 0        ^ _4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4  )^ _4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4.5)^ _4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4j5)^ _4+i.9

_ _ _ _ 1 0 0 0 0 -: 0        ^ -:_4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4  )^ -:_4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4.5)^ -:_4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4j5)^ -:_4+i.9

_ _ _ _ 1 0 0 0 0 -: 0        ^ }. 0j1, -:_4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4  )^ }. 0j1, -:_4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4.5)^ }. 0j1, -:_4+i.9
_ _ _ _ 1 0 0 0 0 -: ({.0 4j5)^ }. 0j1, -:_4+i.9

a=:1.41421356237309504880
a       -:     2   ^ 0.5
(%a)    -:     2   ^_0.5
(%a)    -:     0.5 ^ 0.5
a       -:     0.5 ^_0.5
(0,  a) -: +. _2   ^ 0.5
(0,%-a) -: +. _2   ^_0.5
(0,% a) -: +. _0.5 ^ 0.5
(0, -a) -: +. _0.5 ^_0.5

1.25992104989487316476 -: 2^%3

x=: j./_50+2 30 ?@$ 100
n=: 30 ?@$ 50
x (^ -: pow)  n
x (^ -: pow) -n

'domain error' -: 3   ^ etx 'abc'
'domain error' -: 3   ^~etx 'abc'
'domain error' -: 2   ^ etx 2;4 5
'domain error' -: 2   ^~etx 2;4 5

'length error' -: 2 3 ^ etx 4 5 6
'length error' -: 2 3 ^~etx 4 5 6
'length error' -: 2 3 ^ etx i.4 5
'length error' -: 2 3 ^~etx i.4 5


NB. x^0 -----------------------------------------------------------------

e.&'1 ' ": x ^ 0 [ x=: ?200$2
e.&'1 ' ": x ^ 0 [ x=: _5e6+?200$1e7
e.&'1 ' ": x ^ 0 [ x=: 0.001*_5e6+?200$1e7
e.&'1 ' ": x ^ 0 [ x=: j./0.001*_5e6+?2 200$1e7


NB. 0^y -----------------------------------------------------------------

e.&'0 ' ": 0       ^     10$1
e.&'0 ' ": 0       ^     1+?10$1e6
e.&'0 ' ": 0       ^ 0.1*1+?10$2e9
e.&'0 ' ": 0       ^ j./ 1+?2 10$2e3

e.&'0 ' ": (2-2)   ^     10$1
e.&'0 ' ": (2-2)   ^     1+?10$1e6
e.&'0 ' ": (2-2)   ^ 0.1*1+?10$2e9
e.&'0 ' ": (2-2)   ^ j./ 1+?2 10$2e3

e.&'0 ' ": (o.0)   ^     10$1
e.&'0 ' ": (o.0)   ^     1+?10$1e6
e.&'0 ' ": (o.0)   ^ 0.1*1+?10$2e9
e.&'0 ' ": (o.0)   ^ j./ 1+?2 10$2e3

e.&'0 ' ": (-~2j1) ^     10$1
e.&'0 ' ": (-~2j1) ^     1+?10$1e6
e.&'0 ' ": (-~2j1) ^ 0.1*1+?10$2e9
e.&'0 ' ": (-~2j1) ^ j./ 1+?2 10$2e3

(,'_') -: ": 0^_5 
(,'_') -: ": 0^_5.4

(,'0') -: ": 0^3j4 
'_ _ 0 0 0 0 0 0' -: ": 0^_3 _1 0j3 0j_3 3j4 3j_4 _3j4 _3j_4


NB. 0^0 -----------------------------------------------------------------

(,'1') -: ": ^~0
(,'1') -: ": ^~-~2
(,'1') -: ": ^~-~2.5
(,'1') -: ": ^~-~2j5


NB. x^0.5 ---------------------------------------------------------------

x         -: *~ x^0.5 [ x=:?2000$2
(%:x)     -: x^0.5
(j.x^0.5) -: (-x)^0.5

x         -: *~ x^0.5 [ x=:?2000$10000
(%:x)     -: x^0.5
(j.x^0.5) -: (-x)^0.5

x         -: *~ x^0.5 [ x=:0.01*?2000$10000
(%:x)     -: x^0.5
(j.x^0.5) -: (-x)^0.5

x         -: *~ x^0.5 [ x=:j./0.01*_5000+?2 2000$10000
(%:x)     -: x^0.5


NB. x ^!.s y ------------------------------------------------------------

(3  ^!.4  [ 6) -: */3+4*i.6
(3j4^!._1 [ 6) -: */3j4-i.6

f =: 4 : '*/x+(i.y)*/s'

(12 ^!.s 6) -: 12 f 6 [ s=:1.5
(12 ^!.s 6) -: 12 f 6 [ s=:1
(12 ^!.s 6) -: 12 f 6 [ s=:_1

'domain error'  -:  ^!.4 etx 5
'domain error'  -: 3^!.4 etx 5.6
'domain error'  -: ex '^!.''a'''
'domain error'  -: ex '^!.(<4) '


NB. x m&|@^ y -----------------------------------------------------------

6 = 2  (10&|@^)   1e9
2 = 2  (10&|@^) 1+1e9
4 = 2  (10&|@^) 2+1e9
8 = 2  (10&|@^) 3+1e9

6 = 2x (10&|@^)   1e9
2 = 2x (10&|@^) 1+1e9
4 = 2x (10&|@^) 2+1e9
8 = 2x (10&|@^) 3+1e9

6 = 2  (10&|@^)   10^40x
2 = 2  (10&|@^) 1+10^40x
4 = 2  (10&|@^) 2+10^40x
8 = 2  (10&|@^) 3+10^40x

6 = 2x (10&|@^)   10^40x
2 = 2x (10&|@^) 1+10^40x
4 = 2x (10&|@^) 2+10^40x
8 = 2x (10&|@^) 3+10^40x

6 = 10&|@(2 &^)   1e9
2 = 10&|@(2 &^) 1+1e9
4 = 10&|@(2 &^) 2+1e9
8 = 10&|@(2 &^) 3+1e9

6 = 10&|@(2x&^)   1e9
2 = 10&|@(2x&^) 1+1e9
4 = 10&|@(2x&^) 2+1e9
8 = 10&|@(2x&^) 3+1e9

6 = 10&|@(2 &^)   10^40x
2 = 10&|@(2 &^) 1+10^40x
4 = 10&|@(2 &^) 2+10^40x
8 = 10&|@(2 &^) 3+10^40x

6 = 10&|@(2x&^)   10^40x
2 = 10&|@(2x&^) 1+10^40x
4 = 10&|@(2x&^) 2+10^40x
8 = 10&|@(2x&^) 3+10^40x

f=: 3 : 0
 assert. 2     (y&|@^ -: y&|@^&x:) 10000
 assert. 3     (y&|@^ -: y&|@^&x:) 10000
 assert. 5     (y&|@^ -: y&|@^&x:) 10000
 assert. 64    (y&|@^ -: y&|@^&x:) 10000
 assert. 17393 (y&|@^ -: y&|@^&x:) 10000
 1
)

f 1e9
f"0 (i:2)+<.%:<:2^IF64{31 63
f"0 (i:2)+<.%:<:2^53

x=: 7700892415753674751x
1 = 2 x&|@^ -:x-1

(3   (17 &|)@^ 9.5) -: 17|3  ^9.5
(3   (17x&|)@^ 9.5) -: 17|3  ^9.5
(3.7 (17 &|)@^ 9  ) -: 17|3.7^9
(3.7 (17x&|)@^ 9  ) -: 17|3.7^9

h=: 7927
y=: 1e5 4 2
((895  h&|@^ y),h|895 ^_1) -: 895  h&|@^ y,_1 
((895x h&|@^ y),h|895x^_1) -: 895x h&|@^ y,_1 

(10000&|@(2&^) x) -: 2 (10000&|@^) x=: 5 10 ?@$ 1e6


NB. x^y on infinite arguments -------------------------------------------

0 -:  0   ^ _
_ -:  0   ^ __
_ -:  2.5 ^ _
1 -:  1   ^ _
0 -: _0.5 ^ _
0 -:  0.5 ^ _

'domain error' -: _1    ^ etx _ 
'domain error' -: _1    ^ etx __
'domain error' -: _5.15 ^ etx _ 
'domain error' -: _0.15 ^ etx __

0 0 0 1 _  _ _  _ -: ({._  1x)^ __ _5 _4 0 1 2 3x _
0 0 0 1 __ _ __   -: ({.__ 1x)^ __ _5 _4 0 1 2 3x
      0 1 _ _ _   -:          0 1 2 3x _ ^ {. _  1x
0 0 0 _ 1 0 0 0   -: __ _5 _4 0 1 2 3x _ ^ {. __ 1x

'domain error' -: _5x   ^ etx {._ 1x
'domain error' -: __ 1x ^ etx {._ 1x

0 0 0 1 _  _ _  _ -: ({._  1r1)^ __ _5 _4 0 1 2 3r1 _
0 0 0 1 __ _ __   -: ({.__ 1r1)^ __ _5 _4 0 1 2 3r1
      0 1 _ _ _   -:          0 1 2 3r1 _ ^ {. _  1r1
0 0 0 _ 1 0 0 0   -: __ _5 _4 0 1 2 3r1 _ ^ {. __ 1r1

0 -: _1r2 ^ {. _  1r1
0 -:  1r2 ^ {. _  1r1
_ -:  1r2 ^ {. __ 1r1

'domain error' -: _5r1   ^ etx {._  1r1
'domain error' -: __ 1r1 ^ etx {._  1r1
'domain error' -: _1r2   ^ etx {.__ 1r1


4!:55 ;:'a exp f h pow rou s x y'