func integerDiv(oldValues [][]byte, newValues [][]byte, w float64) (result [][]byte) { var sum int64 var tmp int64 var err error if oldValues != nil { if tmp, err = common.DecodeInt64(oldValues[0]); err == nil { sum = tmp } for _, b := range newValues { if tmp, err = common.DecodeInt64(b); err == nil { sum /= (tmp * int64(w)) } } } else { if tmp, err = common.DecodeInt64(newValues[0]); err == nil { sum = (tmp * int64(w)) } for _, b := range newValues[1:] { if tmp, err = common.DecodeInt64(b); err == nil { sum /= (tmp * int64(w)) } } } res := new(bytes.Buffer) binary.Write(res, binary.BigEndian, sum) return [][]byte{res.Bytes()} }
func integerSum(oldValues [][]byte, newValues [][]byte, w float64) (result [][]byte) { var sum int64 var tmp int64 var err error for _, b := range oldValues { if tmp, err = common.DecodeInt64(b); err == nil { sum += tmp } } for _, b := range newValues { if tmp, err = common.DecodeInt64(b); err == nil { sum += (tmp * int64(w)) } } res := new(bytes.Buffer) binary.Write(res, binary.BigEndian, sum) return [][]byte{res.Bytes()} }
func decode(b []byte) string { switch *enc { case stringFormat: return string(b) case floatFormat: res, err := common.DecodeFloat64(b) if err != nil { return fmt.Sprint(b) } return fmt.Sprint(res) case intFormat: res, err := common.DecodeInt64(b) if err != nil { return fmt.Sprint(b) } return fmt.Sprint(res) case bigFormat: return fmt.Sprint(common.DecodeBigInt(b)) } panic(fmt.Errorf("Unknown encoding: %v", *enc)) }