MPSolve  3.2.1
chebyshev.h
1 /*
2  * This file is part of MPSolve 3.2.1
3  *
4  * Copyright (C) 2001-2020, Dipartimento di Matematica "L. Tonelli", Pisa.
5  * License: http://www.gnu.org/licenses/gpl.html GPL version 3 or higher
6  *
7  * Authors:
8  * Leonardo Robol <leonardo.robol@unipi.it>
9  */
10 
11 #ifndef MPS_CHEBYSHEV_H_
12 #define MPS_CHEBYSHEV_H_
13 
14 MPS_BEGIN_DECLS
15 
16  #define MPS_CHEBYSHEV_POLY_TYPE_NAME "mps_chebyshev_poly"
17  #define MPS_CHEBYSHEV_POLY(t) ((mps_chebyshev_poly*)t)
18  #define MPS_IS_CHEBYSHEV_POLY(t) mps_polynomial_check_type (t, "mps_chebyshev_poly")
19 
20 typedef struct {
25 
30  cplx_t * fpc;
31 
36  cdpe_t * dpc;
37 
42  mpc_t * mfpc;
43 
49 
55 
59  mpc_t lc;
60 
64  pthread_mutex_t precision_mutex;
66 
67 
72 mps_chebyshev_poly * mps_chebyshev_poly_new (mps_context * ctx, int n, mps_structure structure);
73 
81 void mps_chebyshev_poly_set_coefficient_q (mps_context * ctx, mps_chebyshev_poly * poly, int i,
82  mpq_t real_part, mpq_t imag_part);
83 
90 void mps_chebyshev_poly_set_coefficient_f (mps_context * ctx, mps_chebyshev_poly * poly,
91  int i, mpc_t coeff);
92 
104 void mps_chebyshev_poly_set_coefficient_i (mps_context * ctx, mps_chebyshev_poly * poly,
105  int i, long int real_coeff, long int imag_coeff);
106 
107 
108 mps_chebyshev_poly * mps_chebyshev_poly_read_from_stream (mps_context * ctx, mps_input_buffer * buffer,
109  mps_structure structure, mps_density density,
110  long int precision);
111 
112 
113 MPS_END_DECLS
114 
115 #endif
Definition: chebyshev.h:20
pthread_mutex_t precision_mutex
Internal mutex used to manage the change of precision.
Definition: chebyshev.h:64
mpq_t * rational_imag_coeffs
Ratinonal coefficients of the polynomial. These are the imaginary parts of the coefficients.
Definition: chebyshev.h:54
mpq_t * rational_real_coeffs
Rational coefficients of the polynomial. These are the real parts of the coefficients.
Definition: chebyshev.h:48
mps_polynomial super
Base implementation of a polynomial.
Definition: chebyshev.h:24
this struct holds the state of the mps computation
Definition: context.h:55
Buffer used to parse input files in MPSolve. It can read a stream line by line.
Definition: input-buffer.h:33
Struct that represents an abstract polynomial. All the other real polynomial implementations (such as...
Definition: polynomial.h:111