summaryrefslogtreecommitdiffstats
path: root/tool_bin/lib/linux/z3/include/z3_polynomial.h
blob: 5f4815d02f5916056f093b00aeeb241a0676b60d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*++
Copyright (c) 2012 Microsoft Corporation

Module Name:

    z3_polynomial.h

Abstract:

    Additional APIs for polynomials.

Author:

    Leonardo de Moura (leonardo) 2012-12-09

Notes:

--*/

#ifndef Z3_POLYNOMIAL_H_
#define Z3_POLYNOMIAL_H_

#ifdef __cplusplus
extern "C" {
#endif // __cplusplus

    /** \defgroup capi C API */
    /*@{*/


    /** @name Polynomials */
    /*@{*/

    /**
       \brief Return the nonzero subresultants of \c p and \c q with respect to the "variable" \c x.

       \pre \c p, \c q and \c x are Z3 expressions where \c p and \c q are arithmetic terms.
       Note that, any subterm that cannot be viewed as a polynomial is assumed to be a variable.
       Example: \ccode{f(a)} is a considered to be a variable in the polynomial \ccode{
       f(a)*f(a) + 2*f(a) + 1}

       def_API('Z3_polynomial_subresultants', AST_VECTOR, (_in(CONTEXT), _in(AST), _in(AST), _in(AST)))
    */
    Z3_ast_vector Z3_API Z3_polynomial_subresultants(Z3_context c, Z3_ast p, Z3_ast q, Z3_ast x);


    /*@}*/
    /*@}*/

#ifdef __cplusplus
}
#endif // __cplusplus

#endif