tricu

A lazy functional language based on Tree Calculus
Log | Files | Refs | README | LICENSE

f273608bc65686ea6e089e213a3f1e7c90dd5c1aa9580506ffd680276978a6ac.tri (454B)


      1 -- Pure binary64 implementation; trusted internal helpers.
      2 !import native_math as N
      3 !import binary64_kernels as K
      4 !import binary64_fast as F
      5 !export align
      6 !export wide
      7 
      8 jam count b = let split = K.shiftL count b in let q = K.head split in
      9   K.choose q (K.choose (t (t t) (K.tail q)) q (K.tail split)) (N.odd q)
     10 align gap b = K.lazy (_ : F.shiftSelective (N.subtract 3 gap) b)
     11   (_ : jam (N.subtract gap 3) b) (N.lte gap 3)
     12 wide a = F.zeros2 (F.zeros1 a)