go-hep.org/x/hep@v0.38.1/hbook/dist_brio.go (about)

     1  // Code generated by brio-gen; DO NOT EDIT.
     2  
     3  package hbook
     4  
     5  import (
     6  	"encoding/binary"
     7  	"math"
     8  )
     9  
    10  // MarshalBinary implements encoding.BinaryMarshaler
    11  func (o *Dist0D) MarshalBinary() (data []byte, err error) {
    12  	var buf [8]byte
    13  	binary.LittleEndian.PutUint64(buf[:8], uint64(o.N))
    14  	data = append(data, buf[:8]...)
    15  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.SumW))
    16  	data = append(data, buf[:8]...)
    17  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.SumW2))
    18  	data = append(data, buf[:8]...)
    19  	return data, err
    20  }
    21  
    22  // UnmarshalBinary implements encoding.BinaryUnmarshaler
    23  func (o *Dist0D) UnmarshalBinary(data []byte) (err error) {
    24  	o.N = int64(binary.LittleEndian.Uint64(data[:8]))
    25  	data = data[8:]
    26  	o.SumW = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
    27  	data = data[8:]
    28  	o.SumW2 = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
    29  	data = data[8:]
    30  	_ = data
    31  	return err
    32  }
    33  
    34  // MarshalBinary implements encoding.BinaryMarshaler
    35  func (o *Dist1D) MarshalBinary() (data []byte, err error) {
    36  	var buf [8]byte
    37  	{
    38  		sub, err := o.Dist.MarshalBinary()
    39  		if err != nil {
    40  			return nil, err
    41  		}
    42  		binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
    43  		data = append(data, buf[:8]...)
    44  		data = append(data, sub...)
    45  	}
    46  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.Stats.SumWX))
    47  	data = append(data, buf[:8]...)
    48  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.Stats.SumWX2))
    49  	data = append(data, buf[:8]...)
    50  	return data, err
    51  }
    52  
    53  // UnmarshalBinary implements encoding.BinaryUnmarshaler
    54  func (o *Dist1D) UnmarshalBinary(data []byte) (err error) {
    55  	{
    56  		n := int(binary.LittleEndian.Uint64(data[:8]))
    57  		data = data[8:]
    58  		err = o.Dist.UnmarshalBinary(data[:n])
    59  		if err != nil {
    60  			return err
    61  		}
    62  		data = data[n:]
    63  	}
    64  	o.Stats.SumWX = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
    65  	data = data[8:]
    66  	o.Stats.SumWX2 = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
    67  	data = data[8:]
    68  	_ = data
    69  	return err
    70  }
    71  
    72  // MarshalBinary implements encoding.BinaryMarshaler
    73  func (o *Dist2D) MarshalBinary() (data []byte, err error) {
    74  	var buf [8]byte
    75  	{
    76  		sub, err := o.X.MarshalBinary()
    77  		if err != nil {
    78  			return nil, err
    79  		}
    80  		binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
    81  		data = append(data, buf[:8]...)
    82  		data = append(data, sub...)
    83  	}
    84  	{
    85  		sub, err := o.Y.MarshalBinary()
    86  		if err != nil {
    87  			return nil, err
    88  		}
    89  		binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
    90  		data = append(data, buf[:8]...)
    91  		data = append(data, sub...)
    92  	}
    93  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.Stats.SumWXY))
    94  	data = append(data, buf[:8]...)
    95  	return data, err
    96  }
    97  
    98  // UnmarshalBinary implements encoding.BinaryUnmarshaler
    99  func (o *Dist2D) UnmarshalBinary(data []byte) (err error) {
   100  	{
   101  		n := int(binary.LittleEndian.Uint64(data[:8]))
   102  		data = data[8:]
   103  		err = o.X.UnmarshalBinary(data[:n])
   104  		if err != nil {
   105  			return err
   106  		}
   107  		data = data[n:]
   108  	}
   109  	{
   110  		n := int(binary.LittleEndian.Uint64(data[:8]))
   111  		data = data[8:]
   112  		err = o.Y.UnmarshalBinary(data[:n])
   113  		if err != nil {
   114  			return err
   115  		}
   116  		data = data[n:]
   117  	}
   118  	o.Stats.SumWXY = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
   119  	data = data[8:]
   120  	_ = data
   121  	return err
   122  }