0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
1 NB. #:y ----------------------------------------------------------------- |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
3 max =: >./@:|@, |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
4 bits =: ] (1 >. ] + [ >: 2x&^@]) <.@(2&^.)@(1&>.) |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
5 abase1 =: #:~ $&2@bits@max |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
6 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
7 NB. Boolean |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
8 (#: -: abase1) x=:?2 3 4$2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
9 (#: -: abase1) x=: 0 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
10 (#: -: abase1) x=: 1 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
11 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
12 NB. integer |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
13 (#: -: abase1) x=:_6000+?2 3 4$12345 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
14 (#: -: abase1) x=:_500+?1000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
15 (#: -: abase1) x=:_1e8+?100$2e8 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
16 (#: -: abase1) x=:_2147483648 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
17 (#: -: abase1) x=: 2147483647 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
18 (#: -: abase1) x=:_2147483648 25 9 2147483647 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
19 (#: -: abase1) imin |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
20 (#: -: abase1) imax |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
21 (#: -: abase1) x=: imax,imin,_5e8+10 ?@$ 1e9 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
22 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
23 NB. floating point |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
24 (#: -: abase1) x=:o._5000+?2 3 4$10000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
25 (#: -: abase1) x=:o._500+?1000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
26 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
27 0~:{.#:(2^12)-1e_9 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
28 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
29 NB. complex |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
30 (#: -: abase1) x=:j./?2 3 4$1000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
31 (#: -: abase1) x=:r.?12345 6789 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
32 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
33 (,0) -: #: 0 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
34 (,1) -: #: 1 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
35 1 0 -: #: 2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
36 1 0 0 -: #: 4 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
37 1 0 0 0 -: #: 8 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
38 1 0 0 0 -: #: _8 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
39 1 1 0 1 -: #: 13 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
40 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
41 (70{.1) -: #: 2^69 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
42 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
43 f =: ([,-.@(0&e.))@$ $ , |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
44 (f t) -: #:t=:?(>:?7$3)$2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
45 (f t) -: #:t=:(?32$2)$2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
46 (f t) -: #:t=:(?32$2)$2.4 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
47 (f t) -: #:t=:(?32$2)$2j4 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
48 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
49 'domain error' -: #: etx 'abc' |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
50 'domain error' -: #: etx 123;45 6 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
51 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
52 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
53 NB. x#:y ---------------------------------------------------------------- |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
54 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
55 abase2 =: ([ | i.@#@$@] |: ([%~]-|)/\.@}.@,)"1 0 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
56 f =: *./@,@:(#: -: abase2) |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
57 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
58 NB. Boolean |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
59 (?4$2) f ?2 3 4$2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
60 (?4$2) f ?2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
61 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
62 NB. integer |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
63 (?4$100) f _6000+?2 5$12345 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
64 (_4+?2 4$10) f _6000+?2 1 3$12345 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
65 (?4$10) f _500+?1000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
66 (_40+?3 2 4$100) f _6000+?3$12345 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
67 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
68 NB. floating point |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
69 (_15+?1 2 4$30) f o._5000+?1 2$10000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
70 (_4+?7$9) f o._500+?10000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
71 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
72 NB. complex |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
73 (_15+3 4$30) f r.?3 1 1 4$1000 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
74 (_4+?3 1 1 7$9) f r.?3 1$12345 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
75 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
76 (?2) (|-:#:) ?2 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
77 (?100) (|-:#:) ?100 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
78 (o.?100) (|-:#:) o.?100 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
79 (r.?100) (|-:#:) r.?100 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
80 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
81 1 2 3 4 -: 10 10 10 10#:1234 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
82 0 0 _1 _1 -: _2 _2 _2 _2#:1 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
83 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
84 f=: #: i.@(*/) |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
85 g=: 3 : 'y#:i.*/y' |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
86 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
87 (f -: g) ?5$5 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
88 (f -: g) ?5$14 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
89 (f -: g) _7+?5$14 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
90 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
91 'domain error' -: 2 3 4#: etx 'abc' |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
92 'domain error' -: 4 3 2#: etx 123;45 6 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
93 'domain error' -: 'abc'#: etx 7 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
94 'domain error' -: (123;4 5 6)#: etx _12 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
95 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
96 4!:55 ;:'abase1 abase2 bits f g max t x ' |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
97 |
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
98 |