github.com/jflude/taocp@v0.0.0-20240210234939-99f2a91af3c2/mix/float.go (about) 1 package mix 2 3 // AddFloatWord returns the sum of two floating point MIX words, and 4 // whether overflow occurred. See Section 4.2.1. 5 func AddFloatWord(u, v Word) (result Word, overflow bool) { 6 // TODO 7 return normalizeFloat(u) 8 } 9 10 func SubFloatWord(u, v Word) (result Word, overflow bool) { 11 return AddFloatWord(u, v.Negate()) 12 } 13 14 func MulFloatWord(u, v Word) (result Word, overflow bool) { 15 // TODO 16 return normalizeFloat(u) 17 } 18 19 func DivFloatWord(u, v Word) (result Word, overflow bool) { 20 // TODO 21 return normalizeFloat(u) 22 } 23 24 func CompareFloatWord(u, v Word) int { 25 panic(ErrNotImplemented) 26 } 27 28 func FloatToFixed(w Word) (result Word, overflow bool) { 29 panic(ErrNotImplemented) 30 } 31 32 func FixedToFloat(w Word) (result Word, overflow bool) { 33 // TODO 34 return normalizeFloat(w) 35 } 36 37 func normalizeFloat(w Word) (result Word, overflow bool) { 38 panic(ErrNotImplemented) // see Algorithm N, Section 4.2.1. 39 }