diff test/g621.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 diff
new file mode 100644
--- /dev/null
+++ b/test/g621.ijs
@@ -0,0 +1,122 @@
+NB. @. ------------------------------------------------------------------
+
+f=: 1:`(* $:@<:) @. *
+(!i.10) -: f"0 i.10
+
+do   =: 0!:100
+ar   =: 5!:1
+test =: 2 : 0
+ do 'f9=.',x
+ do 'g9=.',y
+ =&ar/;:'f9 g9'
+)
+
+ifopen =: (-:>) @ {. @ [
+from1  =: >@{ ` { @. (1&<@#@[)
+from   =: ($:&.> <) ` from1 @. ifopen
+
+g =: ;: '&+&.+&:^.@'
+'(++^.)+^.' test '((1 3 5;3;5) from g)`:6'
+'(++^.)+^.' test 'g@.(1 3 5;3;5)'
+
+'index error' -: +`-`* @. ] etx 3
+'index error' -: +`-`* @. ] etx _4
+
+'rank error'  -: +`-`* @. ] etx i.3
+'rank error'  -: +`-`* @. ] etx i.1 1
+
+ack=: c1`c1`c2`c3 @. (#.@(,&*)) " 0
+c1 =: >:@]                     NB. 1+y
+c2 =: <:@[ ack 1:              NB. (x-1) ack 1
+c3 =: <:@[ ack [ ack <:@]      NB. (x-1) ack x ack y-1
+
+(0&ack -:  >:&.(3&+)) x=: ?10$20
+(1&ack -: 2&+&.(3&+)) x=: ?10$20
+(2&ack -: 2&*&.(3&+)) x=: ?10$20
+(3&ack -: 2&^&.(3&+)) 3
+
+(o.  x) -: o.`*`(*:@+:)@.0 x=: 1 2 3
+(*   x) -: o.`*`(*:@+:)@.1 x=: 1 2 3
+(*:+:x) -: o.`*`(*:@+:)@.2 x=: 1 2 3
+
+
+NB. g @. v " 0 ----------------------------------------------------------
+
+NB. Example: CDF of standard Normal N(0,1) by J.E.H. Shaw
+NB.
+NB. n01pdf v    probability density function for N(0,1)
+NB. erf v       error function
+NB. n01cdfh v   cumulative distribution function for N(0,1) using H.
+NB. n01cdfr v   ratio used for CDF in tails of N(0,1)
+NB. n01cdfn v   more accurate than n01cdfh in lower tail (say y. < _6)
+NB. n01cdfp v   more accurate than n01cdfh in upper tail (say y. > 6)
+NB. n01cdfa v   N(0,1) cdf using @.
+NB. n01cdf v    N(0,1) cdf using agenda 
+
+agenda=: 2 : 0
+ j=. ~.k=. v y
+ b=. k (('@:' <@(,&<) '<'&;)"0 j{m)/. y
+ (/:/:k) { ; b /: j
+)
+
+n01pdf =: ([: ^ _0.5"_ * *:) % (%: 2p1)"_ 
+erf    =: (*&(%:4p_1) % ^@:*:) * [: 1 H. 1.5 *:
+n01cdfh=: [: -: 1: + [: erf %&(%:2) 
+n01cdfr=: n01pdf % ] + 1: % ] + 2: % ] + 3: % ] + 4: % ] + 4.5&%
+n01cdfn=: [: - n01cdfr
+n01cdfp=: 1: - n01cdfr
+n01cdfa=: n01cdfn`n01cdfh`n01cdfp @. (>&_6 + >&6) " 0
+n01cdf =: n01cdfn`n01cdfh`n01cdfp agenda (>&_6 + >&6)
+
+(n01cdf -: n01cdfa) x=: _10 + 0.01 * ? 10000 $ 1000
+
+f0 =: -`*: @. (1: = 2&|) " 0
+f1 =: 3 : ' (b**:y)+(-.b=.2|y)*-y'
+(f0 -: f1) x=: ?13 17 19$1000
+
+square=: 3 : '*: y'
+
+f0=: 1: ` *:     @. (1: = 2&|) " 0
+f1=: 1: ` square @. (1: = 2&|) " 0
+(f0 -: f1) x=: ?13 17 19$1000
+
+f0=: 1: ` - ` *:     @. (3&|) " 0
+f1=: 1: ` - ` square @. (3&|) " 0
+(f0 -: f1) x=: ?13 17 19$1000
+
+
+NB. @. -- all size x partitions of y ------------------------------------
+
+start =: +/@{. >:@i.@<.@%&>: {:@$
+mask  =: start <:/ {."1 <. -.@(-/)@(_2&{.)"1
+pfx   =: +/"1 # >:@i.@#
+ind   =: , # */@$ $ i.@{:@$
+decr  =: (>:@(-/)@(_1 0&{) _1} ])"1
+form  =: pfx@[ decr@,. ind@[ { ]
+recur =: (mask form ])@(part&<:)
+
+test  =: 1&<@[ *. <
+basis =: (0&<@] , [) $ (1&=@[ 1&>.@* ])
+part  =: basis`recur@.test
+
+f=: 4 : 0
+ t=.x part y
+ assert. x={:$t
+ assert. (i.#t)-:/:t
+ assert. (0=x)+.y=+/"1 t
+ assert. (/:"1 t) *./ .=i.x
+ 1
+)
+
+f/+/\?5 10
+0 f 0
+0 f 5
+5 f 5
+
+
+4!:55 ;:'ack agenda ar c1 c2 c3 basis decr do erf f f0 f1 form from from1 '
+4!:55 ;:'g ifopen ind mask '
+4!:55 ;:'n01cdf n01cdfa n01cdfh n01cdfn n01cdfp n01cdfr n01pdf '
+4!:55 ;:'part pfx recur square start t test x z '
+
+