4.3BSD/usr/contrib/apl/lib/fn/eft

r { f eft dr;nm;ex;vec;er;orig
orig { ?1
}(~er{~(2<RRdr)V1#RRf)/efterr
}(Xer{(2#Rf)^(`1Y1,Rdr)#.5XRf)/efterr
}(Xer{2XV/4>-/((.5XRf),2)Rf)/efterr
}(0#RRdr)/ok
dr { ,dr
ok: f {(2X`1YRdr)Rf
nm { f -(Rf)R4 0
ex { D(0#dr)X10O*|dr+dr=0
r{nm NJ drX10*-ex
r {r,(((`1+RRdr)/1YRdr),4X`1YRdr)R'e','+-'[orig+0>,ex],O\'0123456789'[orig+10 10N|,ex]
nm { (nmX(Rnm)R1 0)+(Rnm)R0 4
vec{(`1YRr)R0
vec[`1Uorig++\nm]{1
}(2=RRdr)/mat
r{r[H|H|#\vec]
}0
mat:r{r[;H|H|#\vec]
}0
efterr: 'eft ',(,(3 6R' rank lengthdomain')[orig+er;]),' problem.'