相关疑难解决方法(0)

让GHC生成"Add With Carry(ADC)"指令

这是一个代码,它将两个三联的未装箱的单词添加到一个新的三个未装箱的单词中,并且还返回任何溢出:

{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnboxedTuples #-}

import GHC.Prim(plusWord2#, Word#, or#)

longAdd :: 
  (# Word#, Word#, Word# #) -> 
  (# Word#, Word#, Word# #) -> 
  (# Word#, (# Word#, Word#, Word# #) #)

longAdd (# xl, xm, xh #) (# yl, ym, yh #) =     
  let
    plusWord3 x y c = 
      let 
        (# c1, r1 #) = plusWord2# x y
        (# c2, r2 #) = plusWord2# r1 c
      in
        (# plusWord# c1 c2, r2 #)
    (# cl, rl …
Run Code Online (Sandbox Code Playgroud)

optimization haskell

17
推荐指数
2
解决办法
247
查看次数

标签 统计

haskell ×1

optimization ×1