Documentation ¶
Index ¶
- Constants
- type CubicallyInterpolatedMapping
- func (m *CubicallyInterpolatedMapping) Encode(b *[]byte)
- func (m *CubicallyInterpolatedMapping) Equals(other IndexMapping) bool
- func (m *CubicallyInterpolatedMapping) Index(value float64) int
- func (m *CubicallyInterpolatedMapping) LowerBound(index int) float64
- func (m *CubicallyInterpolatedMapping) MaxIndexableValue() float64
- func (m *CubicallyInterpolatedMapping) MinIndexableValue() float64
- func (m *CubicallyInterpolatedMapping) RelativeAccuracy() float64
- func (m *CubicallyInterpolatedMapping) ToProto() *sketchpb.IndexMapping
- func (m *CubicallyInterpolatedMapping) Value(index int) float64
- type IndexMapping
- type LinearlyInterpolatedMapping
- func (m *LinearlyInterpolatedMapping) Encode(b *[]byte)
- func (m *LinearlyInterpolatedMapping) Equals(other IndexMapping) bool
- func (m *LinearlyInterpolatedMapping) Index(value float64) int
- func (m *LinearlyInterpolatedMapping) LowerBound(index int) float64
- func (m *LinearlyInterpolatedMapping) MaxIndexableValue() float64
- func (m *LinearlyInterpolatedMapping) MinIndexableValue() float64
- func (m *LinearlyInterpolatedMapping) RelativeAccuracy() float64
- func (m *LinearlyInterpolatedMapping) ToProto() *sketchpb.IndexMapping
- func (m *LinearlyInterpolatedMapping) Value(index int) float64
- type LogarithmicMapping
- func (m *LogarithmicMapping) Encode(b *[]byte)
- func (m *LogarithmicMapping) Equals(other IndexMapping) bool
- func (m *LogarithmicMapping) Index(value float64) int
- func (m *LogarithmicMapping) LowerBound(index int) float64
- func (m *LogarithmicMapping) MaxIndexableValue() float64
- func (m *LogarithmicMapping) MinIndexableValue() float64
- func (m *LogarithmicMapping) RelativeAccuracy() float64
- func (m *LogarithmicMapping) ToProto() *sketchpb.IndexMapping
- func (m *LogarithmicMapping) Value(index int) float64
Constants ¶
const ( A = 6.0 / 35.0 B = -3.0 / 5.0 C = 10.0 / 7.0 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CubicallyInterpolatedMapping ¶
type CubicallyInterpolatedMapping struct {
// contains filtered or unexported fields
}
CubicallyInterpolatedMapping is a fast IndexMapping that approximates the memory-optimal LogarithmicMapping by extracting the floor value of the logarithm to the base 2 from the binary representations of floating-point values and cubically interpolating the logarithm in-between. More detailed documentation of this method can be found in: <a href="https://github.com/DataDog/sketches-java/">sketches-java</a>
func NewCubicallyInterpolatedMapping ¶
func NewCubicallyInterpolatedMapping(relativeAccuracy float64) (*CubicallyInterpolatedMapping, error)
func NewCubicallyInterpolatedMappingWithGamma ¶
func NewCubicallyInterpolatedMappingWithGamma(gamma, indexOffset float64) (*CubicallyInterpolatedMapping, error)
func (*CubicallyInterpolatedMapping) Encode ¶ added in v1.1.0
func (m *CubicallyInterpolatedMapping) Encode(b *[]byte)
func (*CubicallyInterpolatedMapping) Equals ¶
func (m *CubicallyInterpolatedMapping) Equals(other IndexMapping) bool
func (*CubicallyInterpolatedMapping) Index ¶
func (m *CubicallyInterpolatedMapping) Index(value float64) int
func (*CubicallyInterpolatedMapping) LowerBound ¶ added in v1.1.0
func (m *CubicallyInterpolatedMapping) LowerBound(index int) float64
func (*CubicallyInterpolatedMapping) MaxIndexableValue ¶
func (m *CubicallyInterpolatedMapping) MaxIndexableValue() float64
func (*CubicallyInterpolatedMapping) MinIndexableValue ¶
func (m *CubicallyInterpolatedMapping) MinIndexableValue() float64
func (*CubicallyInterpolatedMapping) RelativeAccuracy ¶
func (m *CubicallyInterpolatedMapping) RelativeAccuracy() float64
func (*CubicallyInterpolatedMapping) ToProto ¶
func (m *CubicallyInterpolatedMapping) ToProto() *sketchpb.IndexMapping
func (*CubicallyInterpolatedMapping) Value ¶
func (m *CubicallyInterpolatedMapping) Value(index int) float64
type IndexMapping ¶
type IndexMapping interface { Equals(other IndexMapping) bool Index(value float64) int Value(index int) float64 LowerBound(index int) float64 RelativeAccuracy() float64 // MinIndexableValue returns the minimum positive value that can be mapped to an index. MinIndexableValue() float64 // MaxIndexableValue returns the maximum positive value that can be mapped to an index. MaxIndexableValue() float64 ToProto() *sketchpb.IndexMapping // Encode encodes a mapping and appends its content to the provided []byte. Encode(b *[]byte) }
func Decode ¶ added in v1.1.0
func Decode(b *[]byte, flag enc.Flag) (IndexMapping, error)
Decode decodes a mapping and updates the provided []byte so that it starts immediately after the encoded mapping.
func FromProto ¶
func FromProto(m *sketchpb.IndexMapping) (IndexMapping, error)
FromProto returns an Index mapping from the protobuf definition of it
func NewDefaultMapping ¶ added in v1.2.0
func NewDefaultMapping(relativeAccuracy float64) (IndexMapping, error)
type LinearlyInterpolatedMapping ¶
type LinearlyInterpolatedMapping struct {
// contains filtered or unexported fields
}
LinearlyInterpolatedMapping is a fast IndexMapping that approximates the memory-optimal LogarithmicMapping by extracting the floor value of the logarithm to the base 2 from the binary representations of floating-point values and linearly interpolating the logarithm in-between.
func NewLinearlyInterpolatedMapping ¶
func NewLinearlyInterpolatedMapping(relativeAccuracy float64) (*LinearlyInterpolatedMapping, error)
func NewLinearlyInterpolatedMappingWithGamma ¶
func NewLinearlyInterpolatedMappingWithGamma(gamma, indexOffset float64) (*LinearlyInterpolatedMapping, error)
func (*LinearlyInterpolatedMapping) Encode ¶ added in v1.1.0
func (m *LinearlyInterpolatedMapping) Encode(b *[]byte)
func (*LinearlyInterpolatedMapping) Equals ¶
func (m *LinearlyInterpolatedMapping) Equals(other IndexMapping) bool
func (*LinearlyInterpolatedMapping) Index ¶
func (m *LinearlyInterpolatedMapping) Index(value float64) int
func (*LinearlyInterpolatedMapping) LowerBound ¶ added in v1.1.0
func (m *LinearlyInterpolatedMapping) LowerBound(index int) float64
func (*LinearlyInterpolatedMapping) MaxIndexableValue ¶
func (m *LinearlyInterpolatedMapping) MaxIndexableValue() float64
func (*LinearlyInterpolatedMapping) MinIndexableValue ¶
func (m *LinearlyInterpolatedMapping) MinIndexableValue() float64
func (*LinearlyInterpolatedMapping) RelativeAccuracy ¶
func (m *LinearlyInterpolatedMapping) RelativeAccuracy() float64
func (*LinearlyInterpolatedMapping) ToProto ¶
func (m *LinearlyInterpolatedMapping) ToProto() *sketchpb.IndexMapping
Generates a protobuf representation of this LinearlyInterpolatedMapping.
func (*LinearlyInterpolatedMapping) Value ¶
func (m *LinearlyInterpolatedMapping) Value(index int) float64
type LogarithmicMapping ¶
type LogarithmicMapping struct {
// contains filtered or unexported fields
}
LogarithmicMapping is an IndexMapping that is memory-optimal, that is to say that given a targeted relative accuracy, it requires the least number of indices to cover a given range of values. This is done by logarithmically mapping floating-point values to integers.
func NewLogarithmicMapping ¶
func NewLogarithmicMapping(relativeAccuracy float64) (*LogarithmicMapping, error)
func NewLogarithmicMappingWithGamma ¶
func NewLogarithmicMappingWithGamma(gamma, indexOffset float64) (*LogarithmicMapping, error)
func (*LogarithmicMapping) Encode ¶ added in v1.1.0
func (m *LogarithmicMapping) Encode(b *[]byte)
func (*LogarithmicMapping) Equals ¶
func (m *LogarithmicMapping) Equals(other IndexMapping) bool
func (*LogarithmicMapping) Index ¶
func (m *LogarithmicMapping) Index(value float64) int
func (*LogarithmicMapping) LowerBound ¶ added in v1.1.0
func (m *LogarithmicMapping) LowerBound(index int) float64
func (*LogarithmicMapping) MaxIndexableValue ¶
func (m *LogarithmicMapping) MaxIndexableValue() float64
func (*LogarithmicMapping) MinIndexableValue ¶
func (m *LogarithmicMapping) MinIndexableValue() float64
func (*LogarithmicMapping) RelativeAccuracy ¶
func (m *LogarithmicMapping) RelativeAccuracy() float64
func (*LogarithmicMapping) ToProto ¶
func (m *LogarithmicMapping) ToProto() *sketchpb.IndexMapping
Generates a protobuf representation of this LogarithicMapping.
func (*LogarithmicMapping) Value ¶
func (m *LogarithmicMapping) Value(index int) float64