MPSolve 3.2.1
Loading...
Searching...
No Matches
mps.h
Go to the documentation of this file.
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
21#ifdef HAVE_CONFIG_H
22#include <config.h>
23#endif
24
25#ifndef MPS_CORE_H_
26#define MPS_CORE_H_
27
28#ifdef __cplusplus
29#define __MPS_NOT_DEFINE_BOOL
30#endif
31
32#ifdef __MPS_MATLAB_MODE
33#define __MPS_NOT_DEFINE_BOOL
34#endif
35
36#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
37 #ifdef MPS_PUBLISH_PRIVATE_METHODS
38 #define MPS_PRIVATE
39 #else
40 #define MPS_PRIVATE __attribute__((visibility ("hidden")))
41 #endif
42#else
43 #define MPS_PRIVATE
44#endif
45
46#ifdef __cplusplus
47 #define MPS_BEGIN_DECLS extern "C" {
48 #define MPS_END_DECLS }
49#else
50 #define MPS_BEGIN_DECLS
51 #define MPS_END_DECLS
52#endif
53
54#ifdef HAVE_CONFIG_H
55#include <config.h>
56#endif
57
58/* This header should be included first since it contains all the forward
59 * declaration that must be available in the others. */
60#include <mps/types.h>
61
62/* Include more types that are needed in the declarations of the generic
63 * functions, such as DPE and MP. */
64#include <mps/mt.h>
65#include <mps/gmptools.h>
66#include <mps/mpc.h>
67#include <mps/link.h>
68#include <mps/polynomial.h>
69
70/* Public types, mostly custom polynomial types such as Chebyshev, Monomial and
71 * Secular equations. */
72#include <mps/matrix.h>
73#include <mps/chebyshev.h>
75#include <mps/monomial-poly.h>
79
80/* Public interface functions for MPSolve */
81#include <mps/approximation.h>
82#include <mps/context.h>
83#include <mps/debug.h>
84#include <mps/interface.h>
85#include <mps/parser.h>
86#include <mps/version.h>
87
88/* Private inclusions. Please note that these header files may not be distributed with
89 * MPSolve, so it's safe to use them only for internal functions. */
90#ifdef _MPS_PRIVATE
91
92#ifndef getline
93MPS_BEGIN_DECLS
94ssize_t getline (char **lineptr, size_t *n, FILE *stream);
95MPS_END_DECLS
96#endif
100#include <mps/private/aberth.h>
102#include <mps/private/cluster.h>
103#include <mps/private/convex.h>
104#include <mps/private/data.h>
106#include <mps/private/horner.h>
108#include <mps/private/improve.h>
111#include <mps/private/list.h>
113#include <mps/private/newton.h>
114#include <mps/private/options.h>
115#include <mps/private/radii.h>
117#include <mps/private/solve.h>
118#include <mps/private/sort.h>
119#include <mps/private/starting.h>
122#include <mps/private/tools.h>
123#include <mps/private/touch.h>
124#include <mps/private/utils.h>
128#endif
129
130#endif /* ndef MPSCORE_H */
Implementation of Aberth correction computation.
Abstract input stream used to parse files.
This file contains the entry points of the various algorithms implemented in MPSolve.
Representation of a single approximation.
Data structures for cluster analysis and some accessors and internal functions.
This file contains the definition of mps_context and most of its fields.
Implementation of the convex hull computation.
Implementation of the routines that handle the management of data inside mps_context objects.
Debugging functions, that honor the status os s->DOLOG and autodetect if the output stream is or not ...
Implementation in C++ of arithmetic between formal polynomials with rational coefficients.
Implementation in C++ of arithmetic between formal polynomials with rational coefficients.
Additional functions used to complete the GMP package with what is needed in MPSolve.
Implementation of determinant computation for Hessenberg matrices.
Horner implementation for Monomial polynomials.
Refining of isolated approximations by means of Newton method.
Implementation of a buffer for parsing input file for MPSolve.
Generic input-output functions inside MPSolve.
Simple routines used to interact with MPSolve without going into the internals.
Implementation of the iterations using Jacobi-style updates.
Custom implementation of list inside MPSolve.
Implementation of a fmemopen-like stream.
Implementation of the monomial version of the matrix polynomial.
Implementation of the allocation and edit functions for the handling of monomial polynomials.
Multiprecision complex type, based on mpf multiprecision floating point type.
Library with extended types in C.
Implementation of Newton correction computation.
Implementation of option parsing for MPSolve.
Generic parsers for common polynomial types.
Implementation of radius computation.
Header file for secular-related routines.
Evaluation of secular equations.
General routines ported from MPSolve 2.2.
Implementation of sorting routines for MPSolve.
Selection of starting points and shifting of the polynomials to zoom in the clusters.
Multithreading iterations for MPSolve.
Header containing various tools used to interact with the system.
Routines that check the emptyness of the intersection of several sets.