PIPS
|
#include <setjmp.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include "genC.h"
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "contrainte.h"
#include "ray_dte.h"
#include "sommet.h"
#include "sg.h"
#include "sc.h"
#include "polyedre.h"
#include "matrix.h"
#include "ri.h"
#include "constants.h"
#include "ri-util.h"
#include "misc.h"
#include "bootstrap.h"
#include "complexity_ri.h"
#include "database.h"
#include "graph.h"
#include "dg.h"
#include "paf_ri.h"
#include "parser_private.h"
#include "property.h"
#include "reduction.h"
#include "text.h"
#include "paf-util.h"
#include "static_controlize.h"
#include "pip.h"
Go to the source code of this file.
Data Structures | |
struct | S |
Base of the parameters. More... | |
Macros | |
#define | Nil 1 |
Internal variables More... | |
#define | If 2 |
#define | List 3 |
#define | Form 4 |
#define | New 5 |
#define | Div 6 |
#define | Val 7 |
Functions | |
int | integer_sol_edit (int i) |
Useful for the sorting of the variables in the system's Pvecteur. More... | |
int | rational_sol_edit (int i) |
========================================================================== More... | |
int | new_sol_edit (int i) |
========================================================================== More... | |
void | new_ecrit_ligne (Pvecteur p_vect, Pbase p_sys_base, int nb_var, Entier *in_val) |
========================================================================== More... | |
Tableau * | sc_to_tableau (Psysteme in_ps, int nb_var) |
========================================================================== More... | |
Variables | |
Pbase | base_var_ref |
Name : pip_interface.c Package : paf-util Author : A. More... | |
Pbase | base_ref |
Base of the unknowns. More... | |
Pbase | old_base |
Base of the parameters. More... | |
Pbase | old_base_var |
Base of the unknowns. More... | |
int | ind_min_max |
quast | quast_act |
Global variables More... | |
expression | expression_act |
struct S | sol_space [] |
Pvecteur | vect_for_sort |
#define Div 6 |
Definition at line 102 of file pip_interface.c.
#define Form 4 |
Definition at line 100 of file pip_interface.c.
#define If 2 |
Definition at line 98 of file pip_interface.c.
#define List 3 |
Definition at line 99 of file pip_interface.c.
#define New 5 |
Definition at line 101 of file pip_interface.c.
#define Nil 1 |
Internal variables
Definition at line 97 of file pip_interface.c.
#define Val 7 |
Definition at line 103 of file pip_interface.c.
Useful for the sorting of the variables in the system's Pvecteur.
========================================================================== int integer_sol_edit((int) i) AL 28/03/94 We will simulate a patern matching when the solution is produced. Warning : we use here the Feautrier version of the pgcd (accept negative nb).
We have a newparm
call to Div case
Let's take the first vector : vecteur2 (case Form)
Call to Form
Take all the coefficient2
Should not be called here
Take the corresponding new parameter
Should not happen here
Look at the superquast
Our quast is a conditional
Take vecteur1 part of the if
Call to case Form
Should not be called here
Take true super quast
Take false super quast
Quast is a list of solutions
call to the liste_vecteur
Take each vecteur (call to Form case)
Should not happen here
We have an undefined quast
This should not happen any more
This case should not happen any more
This case should not happen any more
Definition at line 115 of file pip_interface.c.
References ajoute_new_var(), creer_predicat(), creer_Psysteme(), creer_quast_value(), creer_true_quast(), D, Div, ecrit_coeff1(), ecrit_coeff2(), ecrit_coeff_neg2(), ecrit_liste_vecteur(), ecrit_une_var(), ecrit_une_var_neg(), Entier, fait_quast(), fait_quast_value(), S::flags, Form, If, init_liste_vecteur(), init_quast(), init_vecteur(), List, New, Nil, S::param1, S::param2, pips_internal_error, retire_par_de_pile(), sol_pgcd(), sol_space, and Val.
Referenced by pip_solve().
==========================================================================
void new_ecrit_ligne(p_vect, p_sys_base, nb_var, in_val) AL 6/12/93
Compteur de variables deja vues
We run over the base and fill in in_val
First, we put variables, then constant terms and then parameters
Definition at line 595 of file pip_interface.c.
References aux, base, int, TCST, and vect_coeff().
Referenced by sc_to_tableau().
==========================================================================
int new_sol_edit((int) i) AL 8/12/93 We will simulate a patern matching when the solution is produced. Warning : we use here the Feautrier version of the pgcd (accept negative nb).
Just keep for compatibility. Should be thrown away AL 28 03 94.
We have a newparm
call to Div case
Let's take the first vector : vecteur2 (case Form)
Call to Form
Take all the coefficient2
Should not be called here
Take the corresponding new parameter
Should not happen here
Look at the superquast
Our quast is a conditional
Take vecteur1 part of the if
Call to case Form
Should not be called here
Take true super quast
Take false super quast
Quast is a list of solutions
call to the liste_vecteur
Take each vecteur (call to Form case)
Should not happen here
We have an undefined quast
This should not happen any more
This case should not happen any more
This case should not happen any more
Definition at line 423 of file pip_interface.c.
References ajoute_new_var(), creer_predicat(), creer_Psysteme(), creer_quast_value(), creer_true_quast(), D, Div, ecrit_coeff1(), ecrit_coeff2(), ecrit_coeff_neg2(), ecrit_liste_vecteur(), ecrit_une_var(), ecrit_une_var_neg(), Entier, fait_quast(), fait_quast_value(), S::flags, Form, If, init_liste_vecteur(), init_quast(), init_vecteur(), List, New, Nil, S::param1, S::param2, pips_internal_error, retire_par_de_pile(), sol_pgcd(), sol_space, and Val.
==========================================================================
int rational_sol_edit((int) i) AL 28/03/94 We will simulate a patern matching when the solution is produced. Warning : we use here the Feautrier version of the pgcd (accept negative nb).
We have a newparm
Our quast is a conditional
Take vecteur1 part of the if
Call to case Form
First scan to get the lcm (ppcm) of the denominator
Then write the new predicate
Take true super quast
Take false super quast
Quast is a list of solutions
call to the liste_vecteur
Take each vecteur (call to Form case)
First scan to get the lcm (ppcm) of the denominator
Then write the expression
We have an undefined quast
This should not happen any more
This case should not happen any more
This case should not happen any more
Definition at line 263 of file pip_interface.c.
References creer_predicat(), creer_Psysteme(), creer_quast_value(), creer_true_quast(), D, Div, DIVIDE_OPERATOR_NAME, ecrit_coeff1(), ecrit_liste_vecteur(), ecrit_une_var(), ecrit_une_var_neg(), Entier, expression_act, fait_quast(), fait_quast_value(), S::flags, Form, If, init_liste_vecteur(), init_quast(), init_vecteur(), int_to_expression(), List, make_op_exp(), New, Nil, S::param1, S::param2, pips_internal_error, sol_pgcd(), sol_ppcm(), sol_space, and Val.
Referenced by pip_solve(), and pip_solve_min_with_big().
==========================================================================
Tableau* sc_to_tableau( (Psysteme) in_ps, (int) nb_var ) AL 6/12/93 Allocates a new Tableau and fill it with in_ps. nb_var represents the number of variables in the systeme in_ps. The input systeme base should be ordered: nb_var first, constant term, then the parameters. If nb_var = 0, there is no variables : the order is then parameters first, then constant.
Let's define h, w, and n according to tab_get in Pip/tab.c
If nb_var = 0, put parameter before constant
Definition at line 629 of file pip_interface.c.
References debug(), L::flags, fprint_psysteme(), get_debug_level(), new_ecrit_ligne(), L::objet, T::row, Scontrainte::succ, tab_alloc(), tab_display(), Unknown, L::val, VALUE_MONE, vect_dup(), vect_multiply(), vect_size(), and Scontrainte::vecteur.
Referenced by pip_solve(), and pip_solve_min_with_big().
Pbase base_ref |
Base of the unknowns.
Definition at line 79 of file pip_interface.c.
Pbase base_var_ref |
Name : pip_interface.c Package : paf-util Author : A.
Tag for MIN or MAX resolution.
Leservot Date : 01 12 1993 Historic : Documents: Comments : Functions to call directly PIP from C3 and get results back in a newgen data (quast). Ansi includes
Newgen includes
C3 includes
Pips includes
Global variables
Definition at line 79 of file pip_interface.c.
|
extern |
Definition at line 94 of file solpip.c.
Referenced by ajoute_constante(), ajoute_new_var(), ecrit_liste_vecteur(), ecrit_une_var(), ecrit_une_var_neg(), init_quast(), init_vecteur(), and rational_sol_edit().
int ind_min_max |
Definition at line 80 of file pip_interface.c.
Pbase old_base |
Base of the parameters.
Definition at line 79 of file pip_interface.c.
Pbase old_base_var |
Base of the unknowns.
Definition at line 79 of file pip_interface.c.
|
extern |
Global variables
Definition at line 101 of file pip.c.
Referenced by creer_true_quast(), ecrit_resultat(), fait_quast(), pip_solve(), and pip_solve_min_with_big().
|
extern |
Definition at line 33 of file sol.c.
Referenced by integer_sol_edit(), is_not_Nil(), new_sol_edit(), rational_sol_edit(), sol_alloc(), and sol_edit().
Pvecteur vect_for_sort |
Definition at line 104 of file pip_interface.c.