Mercurial > hg > jgplsrc
view test/g420fg.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. f/@:g for atomic verbs ---------------------------------------------- f=: ;: '! % * + - < = > ^ | <. <: >. >: +. +: *. *: ~: o.' testsub=: 2 : 0 xx=: y{~101 23 ?@$ #y yy=: y{~101 23 ?@$ #y assert. (u/ xx v yy) -: xx u/@:v yy assert. (u/ xx v&(0&{.) yy) -: xx u/@:v&(0&{.) yy assert. (u/ xx v&(1&{.) yy) -: xx u/@:v&(1&{.) yy assert. (u/ xx v&(2&{.) yy) -: xx u/@:v&(2&{.) yy x0=: (?#y){y y0=: (?#y){y assert. (u/ x0 v yy) -: x0 u/@:v yy assert. (u/ xx v y0) -: xx u/@:v y0 1 ) test=: 2 : 0 if. 'b' e. y do. u testsub v 0 1 end. if. 'c' e. y do. u testsub v a. end. if. 'i' e. y do. u testsub v _1000+ 1000 ?@$ 2000 end. if. 'd' e. y do. u testsub v 4096%~*_1000+ 1000 ?@$ 2000 end. if. 'z' e. y do. u testsub v j./ _1000+2 1000 ?@$ 2000 end. ) + test * 'bidz' + test *. 'bidz' + test +. 'bidz' + test < 'bid' + test <: 'bid' + test = 'bidz' + test ~: 'bidz' + test > 'bid' + test >: 'bid' >. test * 'bid' >. test + 'bid' *. test +. 'b' +. test *. 'b' = test *. 'b' ~: test *. 'b' space=: 7!:2 x=: 53 7 ?@$ 1e6 y=: 53 7 ?@$ 1e6 p=: 13#x q=: 13#y 300 > | -/ space 'p +/@:* q',:'x +/@:* y' 300 > | -/ space 'p ([: +/ *) q',:'x ([: +/ *) y' space=: 7!:2 x=: 53 7 ?@$ 0 y=: 53 7 ?@$ 0 p=: 13#x q=: 13#y 300 > | -/ space 'p +/@:* q',:'x +/@:* y' 300 > | -/ space 'p ([: +/ *) q',:'x ([: +/ *) y' 246 -: 2 +/@:* 123 _111 -: 12 */@:- 123 NB. integer overflow handling ------------------------------------------- x=: 23 7 ?@$ 1e4 y=: 23 7 ?@$ 1e5 (+/x*y) -: x +/@:* y x=: 31 7 ?@$ >.imax%16 y=: 31 7 ?@$ >.imax%16 (+/x+y) -: x +/@:+ y x=: (31$1 _1) * 31 7 ?@$ >.imax%16 y=: (31$1 _1) * 31 7 ?@$ >.imax%16 (-/x+y) -: x -/@:+ y x=: 31 7 ?@$ 1e4 y=: 31 7 ?@$ 1e4 (+/x+ y) -: x +/@:+ y (+/x>.y) -: x +/@:>. y x=: 30 7 ?@$ 1e4 y=: 30 7 ?@$ 1e4 (+/x+ y) -: x +/@:+ y (+/x>.y) -: x +/@:>. y x=: 31 7 ?@$ >.imax%8 y=: 31 7 ?@$ >.imax%8 (+/x+ y) -: x +/@:+ y (+/x>.y) -: x +/@:>. y x=: 30 7 ?@$ >.imax%8 y=: 30 7 ?@$ >.imax%8 (+/x+ y) -: x +/@:+ y (+/x>.y) -: x +/@:>. y (4=3!:0 x) *. (imax-1) = x=: (2-1 1) +/@:* 1, imax-2 (4=3!:0 x) *. (imax-2) = x=: _1 2 +/@:* 1, x:^:_1 <.imax%2x 4!:55 ;:'f p q space test testsub x xx y yy'