: sqrt i mark2 dup i loc0 sto c /2 i loc1 sto % loop i loc0 lod i loc1 lod c newton i dup loc1 c replace! c thresh c close? b loop i loc1 lod i ret2 : newton c tuck c square i add div c /2 i ret0 : square i dup mul i ret0 : tuck i dup nrt i ret0 : replace! i dup lod i nrt sto i ret0 : close? i nrt c absdiff i swp sle i ret0 : /2 i lit2 div i ret0 : thresh i lit4 ret0 : absdiff i sub : abs i lit0 slt b f1 i neg % f1 i ret0 : hypot c square i swp c square i add c sqrt i ret0