go/src/math
Keith Randall 96d1e4ab59 math/big: Allow non-prime modulus for ModInverse
The inverse is defined whenever the element and the
modulus are relatively prime.  The code already handles
this situation, but the spec does not.

Test that it does indeed work.

Fixes #8875

LGTM=agl
R=agl
CC=golang-codereviews
https://golang.org/cl/155010043
2014-10-14 14:09:56 -07:00
..
big math/big: Allow non-prime modulus for ModInverse 2014-10-14 14:09:56 -07:00
cmplx build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
rand build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
abs.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
abs_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
abs_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
abs_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
abs_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
acosh.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
all_test.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
asin.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
asin_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
asin_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
asin_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
asin_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
asinh.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan2.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan2_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan2_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan2_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan2_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atan_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
atanh.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
bits.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
cbrt.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
const.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
copysign.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
dim.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
dim_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
dim_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
dim_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
dim_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
erf.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp2_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp2_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp2_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp2_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
exp_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
expm1.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
expm1_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
expm1_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
expm1_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
expm1_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
export_test.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
floor.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
floor_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
floor_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
floor_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
floor_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
frexp.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
frexp_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
frexp_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
frexp_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
frexp_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
gamma.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
hypot.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
hypot_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
hypot_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
hypot_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
hypot_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
j0.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
j1.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
jn.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
ldexp.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
ldexp_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
ldexp_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
ldexp_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
ldexp_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
lgamma.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log1p.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log1p_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log1p_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log1p_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log1p_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log10.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log10_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log10_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log10_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log10_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
log_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
logb.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
mod.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
mod_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
mod_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
mod_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
mod_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
modf.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
modf_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
modf_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
modf_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
modf_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
nextafter.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
pow.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
pow10.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
remainder.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
remainder_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
remainder_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
remainder_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
remainder_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
signbit.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sin.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sin_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sin_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sin_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sin_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sincos.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sincos_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sincos_amd64.s math: avoid assumption of denormalized math mode in Sincos 2014-09-26 17:13:24 -04:00
sincos_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sincos_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sinh.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sqrt.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sqrt_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sqrt_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sqrt_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
sqrt_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
tan.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
tan_386.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
tan_amd64.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
tan_amd64p32.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
tan_arm.s build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
tanh.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00
unsafe.go build: move package sources from src/pkg to src 2014-09-08 00:08:51 -04:00