Ejemplo n.º 1
0
Archivo: merges.go Proyecto: baeeq/god
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()}
}
Ejemplo n.º 2
0
Archivo: merges.go Proyecto: baeeq/god
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()}
}
Ejemplo n.º 3
0
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))
}