// Copyright 2017 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
// +build go1.12 | |
package rand | |
import "math/bits" | |
func (pcg *PCGSource) add() { | |
var carry uint64 | |
pcg.low, carry = bits.Add64(pcg.low, incLow, 0) | |
pcg.high, _ = bits.Add64(pcg.high, incHigh, carry) | |
} | |
func (pcg *PCGSource) multiply() { | |
hi, lo := bits.Mul64(pcg.low, mulLow) | |
hi += pcg.high * mulLow | |
hi += pcg.low * mulHigh | |
pcg.low = lo | |
pcg.high = hi | |
} |