NB. UTILITIES
am=. +/ % #
concat=. ,
dev=. - am
diff=. 2&(-~/\)
Ei=. i.@>:
ptile=. ptint @ (1&|@ptndx,([:(<.,>.)ptndx){])
   ptint=. 1&{@] + {.*-/@|.@}.@]
   ptndx=. _0.5&+@([ * #@])
q1=. 0.25&ptile 
q2=. 0.5&ptile
q3=. 0.75&ptile
rfr=. +/"1 @ (=/)
rfrtab=. [ ,. rfr
rnd=. <.@(0.5&+)
sortdn=. \:~
sortup=. /:~
sp=. +/ @ (*&dev)
ss=. +/ @ *: @ dev
to =. ([ + [: Ei ]-[)`([: |. to~)@.([>])
un01=. (? % ]) @ ($&1e9)

NB. RESAMPLING STATS 
abs=. |
add=. +
boxplot=. (bpfr;bpst) @ sortup
 bpfr=. ([:+/]<q1),([:+/(]>:q1)*.(]<:q3)),([:+/]>q3)
 bpst=. {.,q1,q2,q3,{:
corr=. sp % [: %: *&ss
count=. [: +/ (] >: {.@[) *. ] <: {:@[
data=. to
dedup=. ~.
divide=. %
exp=. ^
exponential=. [ * -@^.@un01@]
generate=. {.@[ + [: ? ] $ [: >: -/@|.@[
histogram=. 3 : 0
:
fr=. x. ftfr y.
HTABLE=: (ftpts x.),. fr,.(100*fr%+/fr),.+/\fr
(margins,"1 bars) 2{."1 HTABLE
)
 ftpts=. -:@(1&{) + {. + 1&{ * i.@{:
 ftfr=. i.@{:@[ rfr [: <. (] - {.@[) % 1&{@[
 margins=. [: 12&{."1 (7.2 4.0&":)
 bars=. (#&'*' & >) @ (25&adjfr) @ ({:"1@])
 adjfr=. [: rnd ] % 1: >.  >./@] %[
max=. >./
mean=. am
median=. q2 @ sortup
min=. <./
mode=. ((>./ = ]) @ (~. rfr ])) # ~.
multiples=. count (#/.~) 
multiply=. *
normal=. {.@[ + {:@[ * stnormal@]
 stnormal=. 3 : 0
 r=. i. 0 
 while. y. > {.$r 
    do. whilst. S >: 1
       do. V=: <:+:un01 2		 
          S=: +/ *: V
    end. 
 r=. r, V * %: -+:(^.%])S
 end.
 r=. y. {. r
 )
percentile=. %&100@[ ptile sortup@]
power=. ^
random=. generate
ranks=.  [: , |:@= # NUBranks
 NUBranks=. (=  +/ . * UNADJranks) % [: +/"1 =
 UNADJranks=. >: @ /:^:2
recode=: 4 : '({:x.) (( y.e.}:x.) # i.#y.)}y.'
regress=. >@{: %. 1: ,"1 [: |: >@}:
round=. *@] * [: rnd |
runs=. runs=. [ rfr [: runlng ]
 runlng=. [: diff # ,~ (1: , 2: ~:/\ ]) # i.@# 
sample=. ([: ? [ $ #@]) { ]
seed=. 9!:1  
set=. $ 
shuffle=. ([: ?~ #@]) { ]
size=. #
sort=. 3 :  ('sortup y.';':';'sortdn y.')
sqrt=. %:
square=. *:
stdev=. %: @ variance
subtract=. -
sum=. +/
sumabsdev=. [: +/ [: | -
sumsqrdev=. [: +/ [: *: -
tagsort=. /:~ 
take=. {.
uniform=. <./@[ + |@(-/)@[*un01@]
urn=. [: ; ({.@[ $ {:@]) &. >
variance=. ss % <: @ #
weed=. ([: -. e.~) # ] 

NB. INPUT/OUTPUT
DOSread=. Jfmt@ufh@freads
DOSwrite=. (hfu@":@[) fwrites ]
 hfu=. '_-'&charsub
 Jfmt=. (".&>)@chop@toJ
 ufh=. '-_'&charsub
WINread=. Jfmt@ufh@wdclipread
WINwrite=. wdclipwrite@clipfmt


 
