minigmp

package module
v1.0.1-0...-32de089 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2018 License: GPL-3.0, BSD-3-Clause Imports: 7 Imported by: 0

README

minigmp

Package minigmp is a small implementation of a subset of GMP's mpn and mpz interfaces.

Installation

$ go get modernc.org/minigmp

Documentation: godoc.org/modernc.org/minigmp

Documentation

Overview

Package minigmp is a small implementation of a subset of GMP's mpn and mpz interfaces.

Changelog

2017-07-18:

- Support for Linux/386 is in.

- License is now the original one, choose LGPL or GPL.

Caveats

- ATM there are only a few simple tests covering just the basic arithmetic operations. The plan is to eventually run all translated-to-Go C tests in minigmp/tests during go generate. Linux/386 version does not yet pass even the simple tests, presumably because of a bug in the CCGO tool chain.

- The automatically generated documentation is sparse and sometimes misplaced. Please consult the full documentation at

http://gmplib.org

Header extracted from minigmp.c:

/* mini-gmp, a minimalistic implementation of a GNU GMP subset.

   Contributed to the GNU project by Niels Möller

Copyright 1991-1997, 1999-2016 Free Software Foundation, Inc.

This file is part of the GNU MP Library.

The GNU MP Library is free software; you can redistribute it and/or modify
it under the terms of either:

  * the GNU Lesser General Public License as published by the Free
    Software Foundation; either version 3 of the License, or (at your
    option) any later version.

or

  * the GNU General Public License as published by the Free Software
    Foundation; either version 2 of the License, or (at your option) any
    later version.

or both in parallel, as here.

The GNU MP Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received copies of the GNU General Public License and the
GNU Lesser General Public License along with the GNU MP Library.  If not,
see https://www.gnu.org/licenses/.  */

/* NOTE: All functions in this file which are not declared in
   mini-gmp.h are internal, and are not intended to be compatible
   neither with GMP nor with future versions of mini-gmp. */

/* Much of the material copied from GMP files, including: gmp-impl.h,
   longlong.h, mpn/generic/add_n.c, mpn/generic/addmul_1.c,
   mpn/generic/lshift.c, mpn/generic/mul_1.c,
   mpn/generic/mul_basecase.c, mpn/generic/rshift.c,
   mpn/generic/sbpi1_div_qr.c, mpn/generic/sub_n.c,
   mpn/generic/submul_1.c. */

Index

Constants

View Source
const (
	X_LP64                     = 1
	X_STDC_PREDEF_H            = 1
	X__ATOMIC_ACQUIRE          = 2
	X__ATOMIC_ACQ_REL          = 4
	X__ATOMIC_CONSUME          = 1
	X__ATOMIC_HLE_ACQUIRE      = 65536
	X__ATOMIC_HLE_RELEASE      = 131072
	X__ATOMIC_RELAXED          = 0
	X__ATOMIC_RELEASE          = 3
	X__ATOMIC_SEQ_CST          = 5
	X__BIGGEST_ALIGNMENT__     = 16
	X__BYTE_ORDER__            = 1234
	X__CHAR_BIT__              = 8
	X__DBL_DECIMAL_DIG__       = 17
	X__DBL_DIG__               = 15
	X__DBL_HAS_DENORM__        = 1
	X__DBL_HAS_INFINITY__      = 1
	X__DBL_HAS_QUIET_NAN__     = 1
	X__DBL_MANT_DIG__          = 53
	X__DBL_MAX_10_EXP__        = 308
	X__DBL_MAX_EXP__           = 1024
	X__DBL_MIN_10_EXP__        = -307
	X__DBL_MIN_EXP__           = -1021
	X__DEC128_MANT_DIG__       = 34
	X__DEC128_MAX_EXP__        = 6145
	X__DEC128_MIN_EXP__        = -6142
	X__DEC32_MANT_DIG__        = 7
	X__DEC32_MAX_EXP__         = 97
	X__DEC32_MIN_EXP__         = -94
	X__DEC64_MANT_DIG__        = 16
	X__DEC64_MAX_EXP__         = 385
	X__DEC64_MIN_EXP__         = -382
	X__DECIMAL_BID_FORMAT__    = 1
	X__DECIMAL_DIG__           = 21
	X__DEC_EVAL_METHOD__       = 2
	X__FINITE_MATH_ONLY__      = 0
	X__FLOAT_WORD_ORDER__      = 1234
	X__FLT_DECIMAL_DIG__       = 9
	X__FLT_DENORM_MIN__        = 1e-45
	X__FLT_DIG__               = 6
	X__FLT_EPSILON__           = 1.1920929e-07
	X__FLT_EVAL_METHOD__       = 0
	X__FLT_HAS_DENORM__        = 1
	X__FLT_HAS_INFINITY__      = 1
	X__FLT_HAS_QUIET_NAN__     = 1
	X__FLT_MANT_DIG__          = 24
	X__FLT_MAX_10_EXP__        = 38
	X__FLT_MAX_EXP__           = 128
	X__FLT_MAX__               = 3.4028235e+38
	X__FLT_MIN_10_EXP__        = -37
	X__FLT_MIN_EXP__           = -125
	X__FLT_MIN__               = 1.1754944e-38
	X__FLT_RADIX__             = 2
	X__FUNCTION__              = 0
	X__FXSR__                  = 1
	X__GXX_ABI_VERSION         = 1010
	X__INT16_MAX__             = 32767
	X__INT32_MAX__             = 2147483647
	X__INT32_TYPE__            = 0
	X__INT64_MAX__             = 9223372036854775807
	X__INT8_MAX__              = 127
	X__INTMAX_MAX__            = 9223372036854775807
	X__INTPTR_MAX__            = 9223372036854775807
	X__INT_FAST16_MAX__        = 9223372036854775807
	X__INT_FAST32_MAX__        = 9223372036854775807
	X__INT_FAST64_MAX__        = 9223372036854775807
	X__INT_FAST8_MAX__         = 127
	X__INT_LEAST16_MAX__       = 32767
	X__INT_LEAST32_MAX__       = 2147483647
	X__INT_LEAST32_TYPE__      = 0
	X__INT_LEAST64_MAX__       = 9223372036854775807
	X__INT_LEAST8_MAX__        = 127
	X__INT_MAX__               = 2147483647
	X__LDBL_DENORM_MIN__       = 0
	X__LDBL_DIG__              = 18
	X__LDBL_EPSILON__          = 1.0842021724855044e-19
	X__LDBL_HAS_DENORM__       = 1
	X__LDBL_HAS_INFINITY__     = 1
	X__LDBL_HAS_QUIET_NAN__    = 1
	X__LDBL_MANT_DIG__         = 64
	X__LDBL_MAX_10_EXP__       = 4932
	X__LDBL_MAX_EXP__          = 16384
	X__LDBL_MAX__              = 0
	X__LDBL_MIN_10_EXP__       = -4931
	X__LDBL_MIN_EXP__          = -16381
	X__LDBL_MIN__              = 0
	X__LONG_LONG_MAX__         = 9223372036854775807
	X__LONG_MAX__              = 9223372036854775807
	X__LP64__                  = 1
	X__MMX__                   = 1
	X__NO_INLINE__             = 1
	X__ORDER_BIG_ENDIAN__      = 4321
	X__ORDER_LITTLE_ENDIAN__   = 1234
	X__ORDER_PDP_ENDIAN__      = 3412
	X__PIC__                   = 2
	X__PIE__                   = 2
	X__PRAGMA_REDEFINE_EXTNAME = 1
	X__PTRDIFF_MAX__           = 9223372036854775807
	X__SCHAR_MAX__             = 127
	X__SEG_FS                  = 1
	X__SEG_GS                  = 1
	X__SHRT_MAX__              = 32767
	X__SIG_ATOMIC_MAX__        = 2147483647
	X__SIG_ATOMIC_MIN__        = -2147483648
	X__SIG_ATOMIC_TYPE__       = 0
	X__SIZEOF_DOUBLE__         = 8
	X__SIZEOF_FLOAT128__       = 16
	X__SIZEOF_FLOAT80__        = 16
	X__SIZEOF_FLOAT__          = 4
	X__SIZEOF_INT__            = 4
	X__SIZEOF_LONG_DOUBLE__    = 16
	X__SIZEOF_LONG_LONG__      = 8
	X__SIZEOF_LONG__           = 8
	X__SIZEOF_POINTER__        = 8
	X__SIZEOF_PTRDIFF_T__      = 8
	X__SIZEOF_SHORT__          = 2
	X__SIZEOF_SIZE_T__         = 8
	X__SIZEOF_WCHAR_T__        = 4
	X__SIZEOF_WINT_T__         = 4
	X__SIZE_MAX__              = 18446744073709551615
	X__SSE2_MATH__             = 1
	X__SSE2__                  = 1
	X__SSE_MATH__              = 1
	X__SSE__                   = 1
	X__SSP_STRONG__            = 3
	X__STDC_HOSTED__           = 1
	X__STDC_IEC_559_COMPLEX__  = 1
	X__STDC_IEC_559__          = 1
	X__STDC_ISO_10646__        = 201505
	X__STDC_NO_THREADS__       = 1
	X__STDC_VERSION__          = 199901
	X__STDC__                  = 1
	X__STRICT_ANSI__           = 1
	X__UINT16_MAX__            = 65535
	X__UINT32_MAX__            = 4294967295
	X__UINT64_MAX__            = 18446744073709551615
	X__UINT8_MAX__             = 255
	X__UINTMAX_MAX__           = 18446744073709551615
	X__UINTPTR_MAX__           = 18446744073709551615
	X__UINT_FAST16_MAX__       = 18446744073709551615
	X__UINT_FAST32_MAX__       = 18446744073709551615
	X__UINT_FAST64_MAX__       = 18446744073709551615
	X__UINT_FAST8_MAX__        = 255
	X__UINT_LEAST16_MAX__      = 65535
	X__UINT_LEAST32_MAX__      = 4294967295
	X__UINT_LEAST64_MAX__      = 18446744073709551615
	X__UINT_LEAST8_MAX__       = 255
	X__VERSION__               = "6.2.0 20161005"
	X__WCHAR_MAX__             = 2147483647
	X__WCHAR_MIN__             = -2147483648
	X__WCHAR_TYPE__            = 0
	X__WINT_MAX__              = 4294967295
	X__WINT_MIN__              = 0
	X__amd64                   = 1
	X__amd64__                 = 1
	X__code_model_small__      = 1
	X__complex__               = 0
	X__const                   = 0
	X__inline                  = 0
	X__k8                      = 1
	X__k8__                    = 1
	X__linux                   = 1
	X__linux__                 = 1
	X__pic__                   = 2
	X__pie__                   = 2
	X__restrict                = 0
	X__unix                    = 1
	X__unix__                  = 1
	X__volatile                = 0
	X__x86_64                  = 1
	X__x86_64__                = 1
)

Variables

View Source
var Xmp_bits_per_limb int32
View Source
var Xstderr unsafe.Pointer

Functions

func Xmp_get_memory_functions

func Xmp_get_memory_functions(tls *crt.TLS, _alloc_func *func(*crt.TLS, uint64) unsafe.Pointer, _realloc_func *func(*crt.TLS, unsafe.Pointer, uint64, uint64) unsafe.Pointer, _free_func *func(*crt.TLS, unsafe.Pointer, uint64))

func Xmp_set_memory_functions

func Xmp_set_memory_functions(tls *crt.TLS, _alloc_func func(*crt.TLS, uint64) unsafe.Pointer, _realloc_func func(*crt.TLS, unsafe.Pointer, uint64, uint64) unsafe.Pointer, _free_func func(*crt.TLS, unsafe.Pointer, uint64))

func Xmpn_add

func Xmpn_add(tls *crt.TLS, _rp *uint64, _ap *uint64, _an int64, _bp *uint64, _bn int64) (r0 uint64)

func Xmpn_add_1

func Xmpn_add_1(tls *crt.TLS, _rp *uint64, _ap *uint64, _n int64, _b uint64) (r0 uint64)

func Xmpn_add_n

func Xmpn_add_n(tls *crt.TLS, _rp *uint64, _ap *uint64, _bp *uint64, _n int64) (r0 uint64)

func Xmpn_addmul_1

func Xmpn_addmul_1(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64, _vl uint64) (r0 uint64)

func Xmpn_cmp

func Xmpn_cmp(tls *crt.TLS, _ap *uint64, _bp *uint64, _n int64) (r0 int32)

func Xmpn_com

func Xmpn_com(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64)

func Xmpn_copyd

func Xmpn_copyd(tls *crt.TLS, _d *uint64, _s *uint64, _n int64)

func Xmpn_copyi

func Xmpn_copyi(tls *crt.TLS, _d *uint64, _s *uint64, _n int64)

func Xmpn_get_str

func Xmpn_get_str(tls *crt.TLS, _sp *uint8, _base int32, _up *uint64, _un int64) (r0 uint64)

func Xmpn_invert_3by2

func Xmpn_invert_3by2(tls *crt.TLS, _u1 uint64, _u0 uint64) (r0 uint64)

C comment

/* The 3/2 inverse is defined as

     m = floor( (B^3-1) / (B u1 + u0)) - B
*/

func Xmpn_lshift

func Xmpn_lshift(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64, _cnt uint32) (r0 uint64)

func Xmpn_mul

func Xmpn_mul(tls *crt.TLS, _rp *uint64, _up *uint64, _un int64, _vp *uint64, _vn int64) (r0 uint64)

func Xmpn_mul_1

func Xmpn_mul_1(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64, _vl uint64) (r0 uint64)

func Xmpn_mul_n

func Xmpn_mul_n(tls *crt.TLS, _rp *uint64, _ap *uint64, _bp *uint64, _n int64)

func Xmpn_neg

func Xmpn_neg(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64) (r0 uint64)

func Xmpn_perfect_square_p

func Xmpn_perfect_square_p(tls *crt.TLS, _p *uint64, _n int64) (r0 int32)

func Xmpn_popcount

func Xmpn_popcount(tls *crt.TLS, _p *uint64, _n int64) (r0 uint64)

func Xmpn_rshift

func Xmpn_rshift(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64, _cnt uint32) (r0 uint64)

func Xmpn_scan0

func Xmpn_scan0(tls *crt.TLS, _ptr *uint64, _bit uint64) (r0 uint64)

func Xmpn_scan1

func Xmpn_scan1(tls *crt.TLS, _ptr *uint64, _bit uint64) (r0 uint64)

func Xmpn_set_str

func Xmpn_set_str(tls *crt.TLS, _rp *uint64, _sp *uint8, _sn uint64, _base int32) (r0 int64)

func Xmpn_sqr

func Xmpn_sqr(tls *crt.TLS, _rp *uint64, _ap *uint64, _n int64)

func Xmpn_sqrtrem

func Xmpn_sqrtrem(tls *crt.TLS, _sp *uint64, _rp *uint64, _p *uint64, _n int64) (r0 int64)

func Xmpn_sub

func Xmpn_sub(tls *crt.TLS, _rp *uint64, _ap *uint64, _an int64, _bp *uint64, _bn int64) (r0 uint64)

func Xmpn_sub_1

func Xmpn_sub_1(tls *crt.TLS, _rp *uint64, _ap *uint64, _n int64, _b uint64) (r0 uint64)

func Xmpn_sub_n

func Xmpn_sub_n(tls *crt.TLS, _rp *uint64, _ap *uint64, _bp *uint64, _n int64) (r0 uint64)

func Xmpn_submul_1

func Xmpn_submul_1(tls *crt.TLS, _rp *uint64, _up *uint64, _n int64, _vl uint64) (r0 uint64)

func Xmpn_zero

func Xmpn_zero(tls *crt.TLS, _rp *uint64, _n int64)

func Xmpn_zero_p

func Xmpn_zero_p(tls *crt.TLS, _rp *uint64, _n int64) (r0 int32)

func Xmpz_abs

func Xmpz_abs(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr)

func Xmpz_add

func Xmpz_add(tls *crt.TLS, _r *[1]Xmpz_srcptr, _a *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr)

func Xmpz_add_ui

func Xmpz_add_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _a *[1]Xmpz_srcptr, _b uint64)

func Xmpz_addmul

func Xmpz_addmul(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_addmul_ui

func Xmpz_addmul_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v uint64)

func Xmpz_and

func Xmpz_and(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_bin_uiui

func Xmpz_bin_uiui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n uint64, _k uint64)

func Xmpz_cdiv_q

func Xmpz_cdiv_q(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_cdiv_q_2exp

func Xmpz_cdiv_q_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _cnt uint64)

func Xmpz_cdiv_q_ui

func Xmpz_cdiv_q_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_cdiv_qr

func Xmpz_cdiv_qr(tls *crt.TLS, _q *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_cdiv_qr_ui

func Xmpz_cdiv_qr_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_cdiv_r

func Xmpz_cdiv_r(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_cdiv_r_2exp

func Xmpz_cdiv_r_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _cnt uint64)

func Xmpz_cdiv_r_ui

func Xmpz_cdiv_r_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_cdiv_ui

func Xmpz_cdiv_ui(tls *crt.TLS, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_clear

func Xmpz_clear(tls *crt.TLS, _r *[1]Xmpz_srcptr)

func Xmpz_clrbit

func Xmpz_clrbit(tls *crt.TLS, _d *[1]Xmpz_srcptr, _bit_index uint64)

func Xmpz_cmp

func Xmpz_cmp(tls *crt.TLS, _a *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_cmp_d

func Xmpz_cmp_d(tls *crt.TLS, _x *[1]Xmpz_srcptr, _d float64) (r0 int32)

func Xmpz_cmp_si

func Xmpz_cmp_si(tls *crt.TLS, _u *[1]Xmpz_srcptr, _v int64) (r0 int32)

func Xmpz_cmp_ui

func Xmpz_cmp_ui(tls *crt.TLS, _u *[1]Xmpz_srcptr, _v uint64) (r0 int32)

func Xmpz_cmpabs

func Xmpz_cmpabs(tls *crt.TLS, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_cmpabs_d

func Xmpz_cmpabs_d(tls *crt.TLS, _x *[1]Xmpz_srcptr, _d float64) (r0 int32)

func Xmpz_cmpabs_ui

func Xmpz_cmpabs_ui(tls *crt.TLS, _u *[1]Xmpz_srcptr, _v uint64) (r0 int32)

func Xmpz_com

func Xmpz_com(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr)

func Xmpz_combit

func Xmpz_combit(tls *crt.TLS, _d *[1]Xmpz_srcptr, _bit_index uint64)

func Xmpz_congruent_p

func Xmpz_congruent_p(tls *crt.TLS, _a *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr, _m *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_divexact

func Xmpz_divexact(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_divexact_ui

func Xmpz_divexact_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64)

func Xmpz_divisible_p

func Xmpz_divisible_p(tls *crt.TLS, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_divisible_ui_p

func Xmpz_divisible_ui_p(tls *crt.TLS, _n *[1]Xmpz_srcptr, _d uint64) (r0 int32)

func Xmpz_export

func Xmpz_export(tls *crt.TLS, _r unsafe.Pointer, _countp *uint64, _order int32, _size uint64, _endian int32, _nails uint64, _u *[1]Xmpz_srcptr) (r0 unsafe.Pointer)

func Xmpz_fac_ui

func Xmpz_fac_ui(tls *crt.TLS, _x *[1]Xmpz_srcptr, _n uint64)

func Xmpz_fdiv_q

func Xmpz_fdiv_q(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_fdiv_q_2exp

func Xmpz_fdiv_q_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _cnt uint64)

func Xmpz_fdiv_q_ui

func Xmpz_fdiv_q_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_fdiv_qr

func Xmpz_fdiv_qr(tls *crt.TLS, _q *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_fdiv_qr_ui

func Xmpz_fdiv_qr_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_fdiv_r

func Xmpz_fdiv_r(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_fdiv_r_2exp

func Xmpz_fdiv_r_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _cnt uint64)

func Xmpz_fdiv_r_ui

func Xmpz_fdiv_r_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_fdiv_ui

func Xmpz_fdiv_ui(tls *crt.TLS, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_fits_slong_p

func Xmpz_fits_slong_p(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_fits_ulong_p

func Xmpz_fits_ulong_p(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_gcd

func Xmpz_gcd(tls *crt.TLS, _g *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_gcd_ui

func Xmpz_gcd_ui(tls *crt.TLS, _g *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v uint64) (r0 uint64)

func Xmpz_gcdext

func Xmpz_gcdext(tls *crt.TLS, _g *[1]Xmpz_srcptr, _s *[1]Xmpz_srcptr, _t *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_get_d

func Xmpz_get_d(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 float64)

func Xmpz_get_si

func Xmpz_get_si(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 int64)

func Xmpz_get_str

func Xmpz_get_str(tls *crt.TLS, _sp *int8, _base int32, _u *[1]Xmpz_srcptr) (r0 *int8)

func Xmpz_get_ui

func Xmpz_get_ui(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 uint64)

func Xmpz_getlimbn

func Xmpz_getlimbn(tls *crt.TLS, _u *[1]Xmpz_srcptr, _n int64) (r0 uint64)

func Xmpz_hamdist

func Xmpz_hamdist(tls *crt.TLS, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr) (r0 uint64)

func Xmpz_import

func Xmpz_import(tls *crt.TLS, _r *[1]Xmpz_srcptr, _count uint64, _order int32, _size uint64, _endian int32, _nails uint64, _src unsafe.Pointer)

C comment

/* Import and export. Does not support nails. */

func Xmpz_init

func Xmpz_init(tls *crt.TLS, _r *[1]Xmpz_srcptr)

C comment

/* MPZ interface */

func Xmpz_init2

func Xmpz_init2(tls *crt.TLS, _r *[1]Xmpz_srcptr, _bits uint64)

C comment

/* The utility of this function is a bit limited, since many functions
   assigns the result variable using mpz_swap. */

func Xmpz_init_set

func Xmpz_init_set(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x *[1]Xmpz_srcptr)

func Xmpz_init_set_d

func Xmpz_init_set_d(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x float64)

func Xmpz_init_set_si

func Xmpz_init_set_si(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x int64)

func Xmpz_init_set_str

func Xmpz_init_set_str(tls *crt.TLS, _r *[1]Xmpz_srcptr, _sp *int8, _base int32) (r0 int32)

func Xmpz_init_set_ui

func Xmpz_init_set_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x uint64)

func Xmpz_invert

func Xmpz_invert(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _m *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_ior

func Xmpz_ior(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_lcm

func Xmpz_lcm(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_lcm_ui

func Xmpz_lcm_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v uint64)

func Xmpz_limbs_finish

func Xmpz_limbs_finish(tls *crt.TLS, _x *[1]Xmpz_srcptr, _xs int64)

func Xmpz_limbs_modify

func Xmpz_limbs_modify(tls *crt.TLS, _x *[1]Xmpz_srcptr, _n int64) (r0 *uint64)

func Xmpz_limbs_read

func Xmpz_limbs_read(tls *crt.TLS, _x *Xmpz_srcptr) (r0 *uint64)

func Xmpz_limbs_write

func Xmpz_limbs_write(tls *crt.TLS, _x *[1]Xmpz_srcptr, _n int64) (r0 *uint64)

func Xmpz_mod

func Xmpz_mod(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_mod_ui

func Xmpz_mod_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_mul

func Xmpz_mul(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_mul_2exp

func Xmpz_mul_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _bits uint64)

func Xmpz_mul_si

func Xmpz_mul_si(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v int64)

C comment

/* MPZ multiplication */

func Xmpz_mul_ui

func Xmpz_mul_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v uint64)

func Xmpz_neg

func Xmpz_neg(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr)

func Xmpz_out_str

func Xmpz_out_str(tls *crt.TLS, _stream *crt.XFILE, _base int32, _x *[1]Xmpz_srcptr) (r0 uint64)

func Xmpz_perfect_square_p

func Xmpz_perfect_square_p(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 int32)

func Xmpz_popcount

func Xmpz_popcount(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 uint64)

func Xmpz_pow_ui

func Xmpz_pow_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr, _e uint64)

func Xmpz_powm

func Xmpz_powm(tls *crt.TLS, _r *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr, _e *[1]Xmpz_srcptr, _m *[1]Xmpz_srcptr)

func Xmpz_powm_ui

func Xmpz_powm_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr, _elimb uint64, _m *[1]Xmpz_srcptr)

func Xmpz_probab_prime_p

func Xmpz_probab_prime_p(tls *crt.TLS, _n *[1]Xmpz_srcptr, _reps int32) (r0 int32)

func Xmpz_realloc2

func Xmpz_realloc2(tls *crt.TLS, _x *[1]Xmpz_srcptr, _n uint64)

func Xmpz_root

func Xmpz_root(tls *crt.TLS, _x *[1]Xmpz_srcptr, _y *[1]Xmpz_srcptr, _z uint64) (r0 int32)

func Xmpz_rootrem

func Xmpz_rootrem(tls *crt.TLS, _x *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _y *[1]Xmpz_srcptr, _z uint64)

C comment

/* x=trunc(y^(1/z)), r=y-x^z */

func Xmpz_scan0

func Xmpz_scan0(tls *crt.TLS, _u *[1]Xmpz_srcptr, _starting_bit uint64) (r0 uint64)

func Xmpz_scan1

func Xmpz_scan1(tls *crt.TLS, _u *[1]Xmpz_srcptr, _starting_bit uint64) (r0 uint64)

func Xmpz_set

func Xmpz_set(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x *[1]Xmpz_srcptr)

func Xmpz_set_d

func Xmpz_set_d(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x float64)

C comment

/* Conversions and comparison to double. */

func Xmpz_set_si

func Xmpz_set_si(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x int64)

C comment

/* MPZ assignment and basic conversions. */

func Xmpz_set_str

func Xmpz_set_str(tls *crt.TLS, _r *[1]Xmpz_srcptr, _sp *int8, _base int32) (r0 int32)

func Xmpz_set_ui

func Xmpz_set_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _x uint64)

func Xmpz_setbit

func Xmpz_setbit(tls *crt.TLS, _d *[1]Xmpz_srcptr, _bit_index uint64)

func Xmpz_sgn

func Xmpz_sgn(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 int32)

C comment

/* MPZ comparisons and the like. */

func Xmpz_size

func Xmpz_size(tls *crt.TLS, _u *[1]Xmpz_srcptr) (r0 uint64)

func Xmpz_sizeinbase

func Xmpz_sizeinbase(tls *crt.TLS, _u *[1]Xmpz_srcptr, _base int32) (r0 uint64)

func Xmpz_sqrt

func Xmpz_sqrt(tls *crt.TLS, _s *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr)

func Xmpz_sqrtrem

func Xmpz_sqrtrem(tls *crt.TLS, _s *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr)

C comment

/* Compute s = floor(sqrt(u)) and r = u - s^2. Allows r == NULL */

func Xmpz_sub

func Xmpz_sub(tls *crt.TLS, _r *[1]Xmpz_srcptr, _a *[1]Xmpz_srcptr, _b *[1]Xmpz_srcptr)

func Xmpz_sub_ui

func Xmpz_sub_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _a *[1]Xmpz_srcptr, _b uint64)

func Xmpz_submul

func Xmpz_submul(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_submul_ui

func Xmpz_submul_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v uint64)

func Xmpz_swap

func Xmpz_swap(tls *crt.TLS, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

func Xmpz_tdiv_q

func Xmpz_tdiv_q(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_tdiv_q_2exp

func Xmpz_tdiv_q_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _cnt uint64)

func Xmpz_tdiv_q_ui

func Xmpz_tdiv_q_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_tdiv_qr

func Xmpz_tdiv_qr(tls *crt.TLS, _q *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_tdiv_qr_ui

func Xmpz_tdiv_qr_ui(tls *crt.TLS, _q *[1]Xmpz_srcptr, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_tdiv_r

func Xmpz_tdiv_r(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d *[1]Xmpz_srcptr)

func Xmpz_tdiv_r_2exp

func Xmpz_tdiv_r_2exp(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _cnt uint64)

func Xmpz_tdiv_r_ui

func Xmpz_tdiv_r_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_tdiv_ui

func Xmpz_tdiv_ui(tls *crt.TLS, _n *[1]Xmpz_srcptr, _d uint64) (r0 uint64)

func Xmpz_tstbit

func Xmpz_tstbit(tls *crt.TLS, _d *[1]Xmpz_srcptr, _bit_index uint64) (r0 int32)

func Xmpz_ui_pow_ui

func Xmpz_ui_pow_ui(tls *crt.TLS, _r *[1]Xmpz_srcptr, _blimb uint64, _e uint64)

func Xmpz_ui_sub

func Xmpz_ui_sub(tls *crt.TLS, _r *[1]Xmpz_srcptr, _a uint64, _b *[1]Xmpz_srcptr)

func Xmpz_xor

func Xmpz_xor(tls *crt.TLS, _r *[1]Xmpz_srcptr, _u *[1]Xmpz_srcptr, _v *[1]Xmpz_srcptr)

Types

type Tgmp_div_inverse

type Tgmp_div_inverse struct {
	Xshift uint32
	Xd1    uint64
	Xd0    uint64
	Xdi    uint64

} // t7 struct{shift uint32,d1 uint64,d0 uint64,di uint64}

type Tmpn_base_info

type Tmpn_base_info struct {
	Xexp uint32
	Xbb  uint64

} // t8 struct{exp uint32,bb uint64}

type Xmpz_srcptr

type Xmpz_srcptr struct {
	X_mp_alloc int32
	X_mp_size  int32
	X_mp_d     *uint64

} // t9 struct{_mp_alloc int32,_mp_size int32,_mp_d *uint64}

func Xmpz_roinit_n

func Xmpz_roinit_n(tls *crt.TLS, _x *[1]Xmpz_srcptr, _xp *uint64, _xs int64) (r0 *Xmpz_srcptr)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL