fmpz_poly_q.h File Reference

Fast implementation of the rational function field. More...

#include <stdio.h>
#include <gmp.h>
#include "fmpz.h"
#include "fmpz_poly.h"

Go to the source code of this file.

Data Structures

struct  fmpz_poly_q_struct
 Data type for a rational function over the rationals or, equivalently, the integers. More...

Defines

#define __asm__   asm
#define __inline__   inline
#define fmpz_poly_q_numref(op)   ((op)->num)
 Returns a reference to the numerator of op.
#define fmpz_poly_q_denref(op)   ((op)->den)
 Returns a reference to the denominator of op.

Typedefs

typedef fmpz_poly_q_struct fmpz_poly_q_t [1]
 Array of fmpz_poly_q_struct of length one.
typedef fmpz_poly_q_structfmpz_poly_q_ptr
 Pointer to fmpz_poly_q_struct.
typedef gmp_randstate_t fmpz_poly_q_randstate_t
 Random state.
typedef __gmp_randstate_struct fmpz_poly_q_randstate_struct
 Random state.

Functions

static __inline__ int _fmpz_poly_is_one (const fmpz_poly_p op)
static __inline__ int _fmpz_poly_is_unit (const fmpz_poly_p op)
static __inline__ void fmpz_poly_q_get_num (fmpz_poly_p rop, const fmpz_poly_q_ptr op)
 Sets rop to the numerator of op.
static __inline__ void fmpz_poly_q_get_den (fmpz_poly_p rop, const fmpz_poly_q_ptr op)
 Sets rop to the denominator of op.
static __inline__ void fmpz_poly_q_set_num (fmpz_poly_q_ptr rop, const fmpz_poly_p op)
 Sets the numerator of rop to the polynomial op.
static __inline__ void fmpz_poly_q_set_den (fmpz_poly_q_ptr rop, const fmpz_poly_p op)
 Sets the denominator of rop to the polynomial op.
void fmpz_poly_q_canonicalize (fmpz_poly_q_ptr rop)
static __inline__ void fmpz_poly_q_init (fmpz_poly_q_ptr rop)
static __inline__ void fmpz_poly_q_clear (fmpz_poly_q_ptr rop)
static void fmpz_poly_q_randinit (fmpz_poly_q_randstate_t state)
static void fmpz_poly_q_randclear (fmpz_poly_q_randstate_t state)
void fmpz_randtest (fmpz_t *f, fmpz_poly_q_randstate_t R, ulong bits)
void fmpz_randtest_not_zero (fmpz_t *f, fmpz_poly_q_randstate_t R, ulong bits)
void fmpz_poly_randtest (fmpz_poly_t poly, fmpz_poly_q_randstate_t R, ulong len, ulong bits)
void fmpz_poly_randtest_not_zero (fmpz_poly_t poly, fmpz_poly_q_randstate_t R, ulong len, ulong bits)
void fmpz_poly_q_randtest (fmpz_poly_q_t poly, fmpz_poly_q_randstate_t R, ulong len1, ulong bits1, ulong len2, ulong bits2)
void fmpz_poly_q_randtest_not_zero (fmpz_poly_q_t poly, fmpz_poly_q_randstate_t R, ulong len1, ulong bits1, ulong len2, ulong bits2)
static __inline__ void fmpz_poly_q_set (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op)
static __inline__ void fmpz_poly_q_set_si (fmpz_poly_q_ptr rop, long op)
static __inline__ void fmpz_poly_q_swap (fmpz_poly_q_ptr op1, fmpz_poly_q_ptr op2)
static __inline__ void fmpz_poly_q_zero (fmpz_poly_q_ptr rop)
static __inline__ void fmpz_poly_q_one (fmpz_poly_q_ptr rop)
static __inline__ void fmpz_poly_q_neg (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op)
static __inline__ void fmpz_poly_q_inv (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op)
static __inline__ int fmpz_poly_q_is_zero (const fmpz_poly_q_ptr op)
static __inline__ int fmpz_poly_q_is_one (const fmpz_poly_q_ptr op)
static __inline__ int fmpz_poly_q_equal (const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_add (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_sub (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_addmul (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_submul (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_scalar_mul_si (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, long x)
void fmpz_poly_q_scalar_mul_mpz (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, const mpz_t x)
void fmpz_poly_q_scalar_mul_mpq (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, const mpq_t x)
void fmpz_poly_q_scalar_div_si (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, long x)
void fmpz_poly_q_scalar_div_mpz (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, const mpz_t x)
void fmpz_poly_q_scalar_div_mpq (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, const mpq_t x)
void fmpz_poly_q_mul (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_div (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op1, const fmpz_poly_q_ptr op2)
void fmpz_poly_q_power (fmpz_poly_q_ptr rop, const fmpz_poly_q_ptr op, unsigned long exp)
void fmpz_poly_q_derivative (fmpz_poly_q_ptr rop, fmpz_poly_q_ptr op)
int fmpz_poly_q_evaluate (mpq_t rop, fmpz_poly_q_ptr f, const mpq_t a)
int fmpz_poly_q_from_string (fmpz_poly_q_ptr rop, const char *s)
char * fmpz_poly_q_to_string (const fmpz_poly_q_ptr op)
char * fmpz_poly_q_to_string_pretty (const fmpz_poly_q_ptr op, const char *x)
void fmpz_poly_q_print (const fmpz_poly_q_ptr op)
void fmpz_poly_q_print_pretty (const fmpz_poly_q_ptr op, const char *x)

Detailed Description

Fast implementation of the rational function field.

Author:
Sebastian Pancratz
Date:
Oct 2009 -- Dec 2010

Define Documentation

#define __asm__   asm
#define __inline__   inline

Function Documentation

static __inline__ int _fmpz_poly_is_one ( const fmpz_poly_p  op  )  [static]

Returns whether the integer polynomials op is equal to one.

static __inline__ int _fmpz_poly_is_unit ( const fmpz_poly_p  op  )  [static]

Returns whether the integer polynomial op is equal to $\pm 1$.

static void fmpz_poly_q_randclear ( fmpz_poly_q_randstate_t  state  )  [static]
static void fmpz_poly_q_randinit ( fmpz_poly_q_randstate_t  state  )  [static]
Generated on Wed Dec 8 17:00:29 2010 for FMPZ_POLY_Q by  doxygen 1.6.3