Source File
	math.go
Belonging Package
	runtime/internal/math
// Copyright 2018 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.package mathimportconst MaxUintptr = ^uintptr(0)// MulUintptr returns a * b and whether the multiplication overflowed.// On supported platforms this is an intrinsic lowered by the compiler.func (, uintptr) (uintptr, bool) {if | < 1<<(4*goarch.PtrSize) || == 0 {return * , false}:= > MaxUintptr/return * ,}// Mul64 returns the 128-bit product of x and y: (hi, lo) = x * y// with the product bits' upper half returned in hi and the lower// half returned in lo.// This is a copy from math/bits.Mul64// On supported platforms this is an intrinsic lowered by the compiler.func (, uint64) (, uint64) {const = 1<<32 - 1:= &:= >> 32:= &:= >> 32:= *:= * + >>32:= &:= >> 32+= *= * + + >>32= *return}// Add64 returns the sum with carry of x, y and carry: sum = x + y + carry.// The carry input must be 0 or 1; otherwise the behavior is undefined.// The carryOut output is guaranteed to be 0 or 1.//// This function's execution time does not depend on the inputs.// On supported platforms this is an intrinsic lowered by the compiler.func (, , uint64) (, uint64) {= + +// The sum will overflow if both top bits are set (x & y) or if one of them// is (x | y), and a carry from the lower place happened. If such a carry// happens, the top bit will be 1 + 0 + 1 = 0 (&^ sum).= (( & ) | (( | ) &^ )) >> 63return}
|  | The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |