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  }