macro_rules! py_engine_backends {
($macro:ident) => {
$macro!(
NimberAlgebra,
"NimberAlgebra",
NimberMV,
"NimberMV",
NimberLinearMap,
"NimberLinearMap",
Nimber,
parse_nimber,
PyNimber,
wrap_nimber
);
$macro!(
Fp2Algebra,
"Fp2Algebra",
Fp2MV,
"Fp2MV",
Fp2LinearMap,
"Fp2LinearMap",
Fp<2>,
parse_fp2,
PyFp2,
wrap_fp2
);
$macro!(
Fp3Algebra,
"Fp3Algebra",
Fp3MV,
"Fp3MV",
Fp3LinearMap,
"Fp3LinearMap",
Fp<3>,
parse_fp3,
PyFp3,
wrap_fp3
);
$macro!(
Fp5Algebra,
"Fp5Algebra",
Fp5MV,
"Fp5MV",
Fp5LinearMap,
"Fp5LinearMap",
Fp<5>,
parse_fp5,
PyFp5,
wrap_fp5
);
$macro!(
Fp7Algebra,
"Fp7Algebra",
Fp7MV,
"Fp7MV",
Fp7LinearMap,
"Fp7LinearMap",
Fp<7>,
parse_fp7,
PyFp7,
wrap_fp7
);
$macro!(
Fp11Algebra,
"Fp11Algebra",
Fp11MV,
"Fp11MV",
Fp11LinearMap,
"Fp11LinearMap",
Fp<11>,
parse_fp11,
PyFp11,
wrap_fp11
);
$macro!(
Fp13Algebra,
"Fp13Algebra",
Fp13MV,
"Fp13MV",
Fp13LinearMap,
"Fp13LinearMap",
Fp<13>,
parse_fp13,
PyFp13,
wrap_fp13
);
$macro!(
F4Algebra,
"F4Algebra",
F4MV,
"F4MV",
F4LinearMap,
"F4LinearMap",
Fpn<2, 2>,
parse_f4,
PyF4,
wrap_f4
);
$macro!(
F8Algebra,
"F8Algebra",
F8MV,
"F8MV",
F8LinearMap,
"F8LinearMap",
Fpn<2, 3>,
parse_f8,
PyF8,
wrap_f8
);
$macro!(
F16Algebra,
"F16Algebra",
F16MV,
"F16MV",
F16LinearMap,
"F16LinearMap",
Fpn<2, 4>,
parse_f16,
PyF16,
wrap_f16
);
$macro!(
F9Algebra,
"F9Algebra",
F9MV,
"F9MV",
F9LinearMap,
"F9LinearMap",
Fpn<3, 2>,
parse_f9,
PyF9,
wrap_f9
);
$macro!(
F25Algebra,
"F25Algebra",
F25MV,
"F25MV",
F25LinearMap,
"F25LinearMap",
Fpn<5, 2>,
parse_f25,
PyF25,
wrap_f25
);
$macro!(
F27Algebra,
"F27Algebra",
F27MV,
"F27MV",
F27LinearMap,
"F27LinearMap",
Fpn<3, 3>,
parse_f27,
PyF27,
wrap_f27
);
$macro!(
Zp2_4Algebra,
"Zp2_4Algebra",
Zp2_4MV,
"Zp2_4MV",
Zp2_4LinearMap,
"Zp2_4LinearMap",
Zp<2, 4>,
parse_zp2_4,
PyZp2_4,
wrap_zp2_4
);
$macro!(
Zp3_4Algebra,
"Zp3_4Algebra",
Zp3_4MV,
"Zp3_4MV",
Zp3_4LinearMap,
"Zp3_4LinearMap",
Zp<3, 4>,
parse_zp3_4,
PyZp3_4,
wrap_zp3_4
);
$macro!(
Zp5_4Algebra,
"Zp5_4Algebra",
Zp5_4MV,
"Zp5_4MV",
Zp5_4LinearMap,
"Zp5_4LinearMap",
Zp<5, 4>,
parse_zp5_4,
PyZp5_4,
wrap_zp5_4
);
$macro!(
Zp7_4Algebra,
"Zp7_4Algebra",
Zp7_4MV,
"Zp7_4MV",
Zp7_4LinearMap,
"Zp7_4LinearMap",
Zp<7, 4>,
parse_zp7_4,
PyZp7_4,
wrap_zp7_4
);
$macro!(
Zp11_4Algebra,
"Zp11_4Algebra",
Zp11_4MV,
"Zp11_4MV",
Zp11_4LinearMap,
"Zp11_4LinearMap",
Zp<11, 4>,
parse_zp11_4,
PyZp11_4,
wrap_zp11_4
);
$macro!(
Zp13_4Algebra,
"Zp13_4Algebra",
Zp13_4MV,
"Zp13_4MV",
Zp13_4LinearMap,
"Zp13_4LinearMap",
Zp<13, 4>,
parse_zp13_4,
PyZp13_4,
wrap_zp13_4
);
$macro!(
Qp2_4Algebra,
"Qp2_4Algebra",
Qp2_4MV,
"Qp2_4MV",
Qp2_4LinearMap,
"Qp2_4LinearMap",
Qp<2, 4>,
parse_qp2_4,
PyQp2_4,
wrap_qp2_4
);
$macro!(
Qp3_4Algebra,
"Qp3_4Algebra",
Qp3_4MV,
"Qp3_4MV",
Qp3_4LinearMap,
"Qp3_4LinearMap",
Qp<3, 4>,
parse_qp3_4,
PyQp3_4,
wrap_qp3_4
);
$macro!(
Qp5_4Algebra,
"Qp5_4Algebra",
Qp5_4MV,
"Qp5_4MV",
Qp5_4LinearMap,
"Qp5_4LinearMap",
Qp<5, 4>,
parse_qp5_4,
PyQp5_4,
wrap_qp5_4
);
$macro!(
Qp7_4Algebra,
"Qp7_4Algebra",
Qp7_4MV,
"Qp7_4MV",
Qp7_4LinearMap,
"Qp7_4LinearMap",
Qp<7, 4>,
parse_qp7_4,
PyQp7_4,
wrap_qp7_4
);
$macro!(
Qp11_4Algebra,
"Qp11_4Algebra",
Qp11_4MV,
"Qp11_4MV",
Qp11_4LinearMap,
"Qp11_4LinearMap",
Qp<11, 4>,
parse_qp11_4,
PyQp11_4,
wrap_qp11_4
);
$macro!(
Qp13_4Algebra,
"Qp13_4Algebra",
Qp13_4MV,
"Qp13_4MV",
Qp13_4LinearMap,
"Qp13_4LinearMap",
Qp<13, 4>,
parse_qp13_4,
PyQp13_4,
wrap_qp13_4
);
$macro!(
WittVec2_4_2Algebra,
"WittVec2_4_2Algebra",
WittVec2_4_2MV,
"WittVec2_4_2MV",
WittVec2_4_2LinearMap,
"WittVec2_4_2LinearMap",
WittVec<2, 4, 2>,
parse_witt_vec2_4_2,
PyWittVec2_4_2,
wrap_witt_vec2_4_2
);
$macro!(
WittVec2_4_3Algebra,
"WittVec2_4_3Algebra",
WittVec2_4_3MV,
"WittVec2_4_3MV",
WittVec2_4_3LinearMap,
"WittVec2_4_3LinearMap",
WittVec<2, 4, 3>,
parse_witt_vec2_4_3,
PyWittVec2_4_3,
wrap_witt_vec2_4_3
);
$macro!(
WittVec2_4_4Algebra,
"WittVec2_4_4Algebra",
WittVec2_4_4MV,
"WittVec2_4_4MV",
WittVec2_4_4LinearMap,
"WittVec2_4_4LinearMap",
WittVec<2, 4, 4>,
parse_witt_vec2_4_4,
PyWittVec2_4_4,
wrap_witt_vec2_4_4
);
$macro!(
WittVec3_4_2Algebra,
"WittVec3_4_2Algebra",
WittVec3_4_2MV,
"WittVec3_4_2MV",
WittVec3_4_2LinearMap,
"WittVec3_4_2LinearMap",
WittVec<3, 4, 2>,
parse_witt_vec3_4_2,
PyWittVec3_4_2,
wrap_witt_vec3_4_2
);
$macro!(
WittVec5_4_2Algebra,
"WittVec5_4_2Algebra",
WittVec5_4_2MV,
"WittVec5_4_2MV",
WittVec5_4_2LinearMap,
"WittVec5_4_2LinearMap",
WittVec<5, 4, 2>,
parse_witt_vec5_4_2,
PyWittVec5_4_2,
wrap_witt_vec5_4_2
);
$macro!(
WittVec3_4_3Algebra,
"WittVec3_4_3Algebra",
WittVec3_4_3MV,
"WittVec3_4_3MV",
WittVec3_4_3LinearMap,
"WittVec3_4_3LinearMap",
WittVec<3, 4, 3>,
parse_witt_vec3_4_3,
PyWittVec3_4_3,
wrap_witt_vec3_4_3
);
$macro!(
Qq2_4_2Algebra,
"Qq2_4_2Algebra",
Qq2_4_2MV,
"Qq2_4_2MV",
Qq2_4_2LinearMap,
"Qq2_4_2LinearMap",
Qq<2, 4, 2>,
parse_qq2_4_2,
PyQq2_4_2,
wrap_qq2_4_2
);
$macro!(
Qq2_4_3Algebra,
"Qq2_4_3Algebra",
Qq2_4_3MV,
"Qq2_4_3MV",
Qq2_4_3LinearMap,
"Qq2_4_3LinearMap",
Qq<2, 4, 3>,
parse_qq2_4_3,
PyQq2_4_3,
wrap_qq2_4_3
);
$macro!(
Qq2_4_4Algebra,
"Qq2_4_4Algebra",
Qq2_4_4MV,
"Qq2_4_4MV",
Qq2_4_4LinearMap,
"Qq2_4_4LinearMap",
Qq<2, 4, 4>,
parse_qq2_4_4,
PyQq2_4_4,
wrap_qq2_4_4
);
$macro!(
Qq3_4_2Algebra,
"Qq3_4_2Algebra",
Qq3_4_2MV,
"Qq3_4_2MV",
Qq3_4_2LinearMap,
"Qq3_4_2LinearMap",
Qq<3, 4, 2>,
parse_qq3_4_2,
PyQq3_4_2,
wrap_qq3_4_2
);
$macro!(
Qq5_4_2Algebra,
"Qq5_4_2Algebra",
Qq5_4_2MV,
"Qq5_4_2MV",
Qq5_4_2LinearMap,
"Qq5_4_2LinearMap",
Qq<5, 4, 2>,
parse_qq5_4_2,
PyQq5_4_2,
wrap_qq5_4_2
);
$macro!(
Qq3_4_3Algebra,
"Qq3_4_3Algebra",
Qq3_4_3MV,
"Qq3_4_3MV",
Qq3_4_3LinearMap,
"Qq3_4_3LinearMap",
Qq<3, 4, 3>,
parse_qq3_4_3,
PyQq3_4_3,
wrap_qq3_4_3
);
$macro!(
LaurentRational6Algebra,
"LaurentRational_6Algebra",
LaurentRational6MV,
"LaurentRational_6MV",
LaurentRational6LinearMap,
"LaurentRational_6LinearMap",
Laurent<Rational, 6>,
parse_laurent_rational_6,
PyLaurentRational6,
wrap_laurent_rational_6
);
$macro!(
LaurentFp3_6Algebra,
"LaurentFp3_6Algebra",
LaurentFp3_6MV,
"LaurentFp3_6MV",
LaurentFp3_6LinearMap,
"LaurentFp3_6LinearMap",
Laurent<Fp<3>, 6>,
parse_laurent_fp3_6,
PyLaurentFp3_6,
wrap_laurent_fp3_6
);
$macro!(
LaurentFp5_6Algebra,
"LaurentFp5_6Algebra",
LaurentFp5_6MV,
"LaurentFp5_6MV",
LaurentFp5_6LinearMap,
"LaurentFp5_6LinearMap",
Laurent<Fp<5>, 6>,
parse_laurent_fp5_6,
PyLaurentFp5_6,
wrap_laurent_fp5_6
);
$macro!(
LaurentFp7_6Algebra,
"LaurentFp7_6Algebra",
LaurentFp7_6MV,
"LaurentFp7_6MV",
LaurentFp7_6LinearMap,
"LaurentFp7_6LinearMap",
Laurent<Fp<7>, 6>,
parse_laurent_fp7_6,
PyLaurentFp7_6,
wrap_laurent_fp7_6
);
$macro!(
LaurentFp11_6Algebra,
"LaurentFp11_6Algebra",
LaurentFp11_6MV,
"LaurentFp11_6MV",
LaurentFp11_6LinearMap,
"LaurentFp11_6LinearMap",
Laurent<Fp<11>, 6>,
parse_laurent_fp11_6,
PyLaurentFp11_6,
wrap_laurent_fp11_6
);
$macro!(
LaurentFp13_6Algebra,
"LaurentFp13_6Algebra",
LaurentFp13_6MV,
"LaurentFp13_6MV",
LaurentFp13_6LinearMap,
"LaurentFp13_6LinearMap",
Laurent<Fp<13>, 6>,
parse_laurent_fp13_6,
PyLaurentFp13_6,
wrap_laurent_fp13_6
);
$macro!(
LaurentF9_6Algebra,
"LaurentF9_6Algebra",
LaurentF9_6MV,
"LaurentF9_6MV",
LaurentF9_6LinearMap,
"LaurentF9_6LinearMap",
Laurent<Fpn<3, 2>, 6>,
parse_laurent_f9_6,
PyLaurentF9_6,
wrap_laurent_f9_6
);
$macro!(
LaurentF25_6Algebra,
"LaurentF25_6Algebra",
LaurentF25_6MV,
"LaurentF25_6MV",
LaurentF25_6LinearMap,
"LaurentF25_6LinearMap",
Laurent<Fpn<5, 2>, 6>,
parse_laurent_f25_6,
PyLaurentF25_6,
wrap_laurent_f25_6
);
$macro!(
LaurentF27_6Algebra,
"LaurentF27_6Algebra",
LaurentF27_6MV,
"LaurentF27_6MV",
LaurentF27_6LinearMap,
"LaurentF27_6LinearMap",
Laurent<Fpn<3, 3>, 6>,
parse_laurent_f27_6,
PyLaurentF27_6,
wrap_laurent_f27_6
);
$macro!(
RamifiedQp2_4E2Algebra,
"RamifiedQp2_4_E2Algebra",
RamifiedQp2_4E2MV,
"RamifiedQp2_4_E2MV",
RamifiedQp2_4E2LinearMap,
"RamifiedQp2_4_E2LinearMap",
Ramified<Qp<2, 4>, 2>,
parse_ramified_qp2_4_e2,
PyRamifiedQp2_4E2,
wrap_ramified_qp2_4_e2
);
$macro!(
RamifiedQp3_4E2Algebra,
"RamifiedQp3_4_E2Algebra",
RamifiedQp3_4E2MV,
"RamifiedQp3_4_E2MV",
RamifiedQp3_4E2LinearMap,
"RamifiedQp3_4_E2LinearMap",
Ramified<Qp<3, 4>, 2>,
parse_ramified_qp3_4_e2,
PyRamifiedQp3_4E2,
wrap_ramified_qp3_4_e2
);
$macro!(
RamifiedQp5_4E2Algebra,
"RamifiedQp5_4_E2Algebra",
RamifiedQp5_4E2MV,
"RamifiedQp5_4_E2MV",
RamifiedQp5_4E2LinearMap,
"RamifiedQp5_4_E2LinearMap",
Ramified<Qp<5, 4>, 2>,
parse_ramified_qp5_4_e2,
PyRamifiedQp5_4E2,
wrap_ramified_qp5_4_e2
);
$macro!(
RamifiedQp7_4E2Algebra,
"RamifiedQp7_4_E2Algebra",
RamifiedQp7_4E2MV,
"RamifiedQp7_4_E2MV",
RamifiedQp7_4E2LinearMap,
"RamifiedQp7_4_E2LinearMap",
Ramified<Qp<7, 4>, 2>,
parse_ramified_qp7_4_e2,
PyRamifiedQp7_4E2,
wrap_ramified_qp7_4_e2
);
$macro!(
RamifiedQp11_4E2Algebra,
"RamifiedQp11_4_E2Algebra",
RamifiedQp11_4E2MV,
"RamifiedQp11_4_E2MV",
RamifiedQp11_4E2LinearMap,
"RamifiedQp11_4_E2LinearMap",
Ramified<Qp<11, 4>, 2>,
parse_ramified_qp11_4_e2,
PyRamifiedQp11_4E2,
wrap_ramified_qp11_4_e2
);
$macro!(
RamifiedQp13_4E2Algebra,
"RamifiedQp13_4_E2Algebra",
RamifiedQp13_4E2MV,
"RamifiedQp13_4_E2MV",
RamifiedQp13_4E2LinearMap,
"RamifiedQp13_4_E2LinearMap",
Ramified<Qp<13, 4>, 2>,
parse_ramified_qp13_4_e2,
PyRamifiedQp13_4E2,
wrap_ramified_qp13_4_e2
);
$macro!(
RamifiedQp2_4E3Algebra,
"RamifiedQp2_4_E3Algebra",
RamifiedQp2_4E3MV,
"RamifiedQp2_4_E3MV",
RamifiedQp2_4E3LinearMap,
"RamifiedQp2_4_E3LinearMap",
Ramified<Qp<2, 4>, 3>,
parse_ramified_qp2_4_e3,
PyRamifiedQp2_4E3,
wrap_ramified_qp2_4_e3
);
$macro!(
RamifiedQp3_4E3Algebra,
"RamifiedQp3_4_E3Algebra",
RamifiedQp3_4E3MV,
"RamifiedQp3_4_E3MV",
RamifiedQp3_4E3LinearMap,
"RamifiedQp3_4_E3LinearMap",
Ramified<Qp<3, 4>, 3>,
parse_ramified_qp3_4_e3,
PyRamifiedQp3_4E3,
wrap_ramified_qp3_4_e3
);
$macro!(
RamifiedQp5_4E3Algebra,
"RamifiedQp5_4_E3Algebra",
RamifiedQp5_4E3MV,
"RamifiedQp5_4_E3MV",
RamifiedQp5_4E3LinearMap,
"RamifiedQp5_4_E3LinearMap",
Ramified<Qp<5, 4>, 3>,
parse_ramified_qp5_4_e3,
PyRamifiedQp5_4E3,
wrap_ramified_qp5_4_e3
);
$macro!(
RamifiedQp7_4E3Algebra,
"RamifiedQp7_4_E3Algebra",
RamifiedQp7_4E3MV,
"RamifiedQp7_4_E3MV",
RamifiedQp7_4E3LinearMap,
"RamifiedQp7_4_E3LinearMap",
Ramified<Qp<7, 4>, 3>,
parse_ramified_qp7_4_e3,
PyRamifiedQp7_4E3,
wrap_ramified_qp7_4_e3
);
$macro!(
RamifiedQp11_4E3Algebra,
"RamifiedQp11_4_E3Algebra",
RamifiedQp11_4E3MV,
"RamifiedQp11_4_E3MV",
RamifiedQp11_4E3LinearMap,
"RamifiedQp11_4_E3LinearMap",
Ramified<Qp<11, 4>, 3>,
parse_ramified_qp11_4_e3,
PyRamifiedQp11_4E3,
wrap_ramified_qp11_4_e3
);
$macro!(
RamifiedQp13_4E3Algebra,
"RamifiedQp13_4_E3Algebra",
RamifiedQp13_4E3MV,
"RamifiedQp13_4_E3MV",
RamifiedQp13_4E3LinearMap,
"RamifiedQp13_4_E3LinearMap",
Ramified<Qp<13, 4>, 3>,
parse_ramified_qp13_4_e3,
PyRamifiedQp13_4E3,
wrap_ramified_qp13_4_e3
);
$macro!(
GaussQp2_4Algebra,
"GaussQp2_4Algebra",
GaussQp2_4MV,
"GaussQp2_4MV",
GaussQp2_4LinearMap,
"GaussQp2_4LinearMap",
Gauss<Qp<2, 4>>,
parse_gauss_qp2_4,
PyGaussQp2_4,
wrap_gauss_qp2_4
);
$macro!(
GaussQp3_4Algebra,
"GaussQp3_4Algebra",
GaussQp3_4MV,
"GaussQp3_4MV",
GaussQp3_4LinearMap,
"GaussQp3_4LinearMap",
Gauss<Qp<3, 4>>,
parse_gauss_qp3_4,
PyGaussQp3_4,
wrap_gauss_qp3_4
);
$macro!(
GaussQp5_4Algebra,
"GaussQp5_4Algebra",
GaussQp5_4MV,
"GaussQp5_4MV",
GaussQp5_4LinearMap,
"GaussQp5_4LinearMap",
Gauss<Qp<5, 4>>,
parse_gauss_qp5_4,
PyGaussQp5_4,
wrap_gauss_qp5_4
);
$macro!(
GaussQp7_4Algebra,
"GaussQp7_4Algebra",
GaussQp7_4MV,
"GaussQp7_4MV",
GaussQp7_4LinearMap,
"GaussQp7_4LinearMap",
Gauss<Qp<7, 4>>,
parse_gauss_qp7_4,
PyGaussQp7_4,
wrap_gauss_qp7_4
);
$macro!(
GaussQp11_4Algebra,
"GaussQp11_4Algebra",
GaussQp11_4MV,
"GaussQp11_4MV",
GaussQp11_4LinearMap,
"GaussQp11_4LinearMap",
Gauss<Qp<11, 4>>,
parse_gauss_qp11_4,
PyGaussQp11_4,
wrap_gauss_qp11_4
);
$macro!(
GaussQp13_4Algebra,
"GaussQp13_4Algebra",
GaussQp13_4MV,
"GaussQp13_4MV",
GaussQp13_4LinearMap,
"GaussQp13_4LinearMap",
Gauss<Qp<13, 4>>,
parse_gauss_qp13_4,
PyGaussQp13_4,
wrap_gauss_qp13_4
);
$macro!(
NimberPolyAlgebra,
"NimberPolyAlgebra",
NimberPolyMV,
"NimberPolyMV",
NimberPolyLinearMap,
"NimberPolyLinearMap",
Poly<Nimber>,
parse_nimber_poly,
PyNimberPoly,
wrap_nimber_poly
);
$macro!(
NimberRationalFunctionAlgebra,
"NimberRationalFunctionAlgebra",
NimberRationalFunctionMV,
"NimberRationalFunctionMV",
NimberRationalFunctionLinearMap,
"NimberRationalFunctionLinearMap",
RationalFunction<Nimber>,
parse_nimber_rational_function,
PyNimberRationalFunction,
wrap_nimber_rational_function
);
$macro!(
Fp2PolyAlgebra,
"Fp2PolyAlgebra",
Fp2PolyMV,
"Fp2PolyMV",
Fp2PolyLinearMap,
"Fp2PolyLinearMap",
Poly<Fp<2>>,
parse_fp2_poly,
PyFp2Poly,
wrap_fp2_poly
);
$macro!(
Fp2RationalFunctionAlgebra,
"Fp2RationalFunctionAlgebra",
Fp2RationalFunctionMV,
"Fp2RationalFunctionMV",
Fp2RationalFunctionLinearMap,
"Fp2RationalFunctionLinearMap",
RationalFunction<Fp<2>>,
parse_fp2_rational_function,
PyFp2RationalFunction,
wrap_fp2_rational_function
);
$macro!(
Fp3PolyAlgebra,
"Fp3PolyAlgebra",
Fp3PolyMV,
"Fp3PolyMV",
Fp3PolyLinearMap,
"Fp3PolyLinearMap",
Poly<Fp<3>>,
parse_fp3_poly,
PyFp3Poly,
wrap_fp3_poly
);
$macro!(
Fp3RationalFunctionAlgebra,
"Fp3RationalFunctionAlgebra",
Fp3RationalFunctionMV,
"Fp3RationalFunctionMV",
Fp3RationalFunctionLinearMap,
"Fp3RationalFunctionLinearMap",
RationalFunction<Fp<3>>,
parse_fp3_rational_function,
PyFp3RationalFunction,
wrap_fp3_rational_function
);
$macro!(
Fp5PolyAlgebra,
"Fp5PolyAlgebra",
Fp5PolyMV,
"Fp5PolyMV",
Fp5PolyLinearMap,
"Fp5PolyLinearMap",
Poly<Fp<5>>,
parse_fp5_poly,
PyFp5Poly,
wrap_fp5_poly
);
$macro!(
Fp5RationalFunctionAlgebra,
"Fp5RationalFunctionAlgebra",
Fp5RationalFunctionMV,
"Fp5RationalFunctionMV",
Fp5RationalFunctionLinearMap,
"Fp5RationalFunctionLinearMap",
RationalFunction<Fp<5>>,
parse_fp5_rational_function,
PyFp5RationalFunction,
wrap_fp5_rational_function
);
$macro!(
Fp7PolyAlgebra,
"Fp7PolyAlgebra",
Fp7PolyMV,
"Fp7PolyMV",
Fp7PolyLinearMap,
"Fp7PolyLinearMap",
Poly<Fp<7>>,
parse_fp7_poly,
PyFp7Poly,
wrap_fp7_poly
);
$macro!(
Fp7RationalFunctionAlgebra,
"Fp7RationalFunctionAlgebra",
Fp7RationalFunctionMV,
"Fp7RationalFunctionMV",
Fp7RationalFunctionLinearMap,
"Fp7RationalFunctionLinearMap",
RationalFunction<Fp<7>>,
parse_fp7_rational_function,
PyFp7RationalFunction,
wrap_fp7_rational_function
);
$macro!(
Fp11PolyAlgebra,
"Fp11PolyAlgebra",
Fp11PolyMV,
"Fp11PolyMV",
Fp11PolyLinearMap,
"Fp11PolyLinearMap",
Poly<Fp<11>>,
parse_fp11_poly,
PyFp11Poly,
wrap_fp11_poly
);
$macro!(
Fp11RationalFunctionAlgebra,
"Fp11RationalFunctionAlgebra",
Fp11RationalFunctionMV,
"Fp11RationalFunctionMV",
Fp11RationalFunctionLinearMap,
"Fp11RationalFunctionLinearMap",
RationalFunction<Fp<11>>,
parse_fp11_rational_function,
PyFp11RationalFunction,
wrap_fp11_rational_function
);
$macro!(
Fp13PolyAlgebra,
"Fp13PolyAlgebra",
Fp13PolyMV,
"Fp13PolyMV",
Fp13PolyLinearMap,
"Fp13PolyLinearMap",
Poly<Fp<13>>,
parse_fp13_poly,
PyFp13Poly,
wrap_fp13_poly
);
$macro!(
Fp13RationalFunctionAlgebra,
"Fp13RationalFunctionAlgebra",
Fp13RationalFunctionMV,
"Fp13RationalFunctionMV",
Fp13RationalFunctionLinearMap,
"Fp13RationalFunctionLinearMap",
RationalFunction<Fp<13>>,
parse_fp13_rational_function,
PyFp13RationalFunction,
wrap_fp13_rational_function
);
$macro!(
RationalAlgebra,
"RationalAlgebra",
RationalMV,
"RationalMV",
RationalLinearMap,
"RationalLinearMap",
Rational,
parse_rational,
PyRational,
wrap_rational
);
$macro!(
AdeleAlgebra,
"AdeleAlgebra",
AdeleMV,
"AdeleMV",
AdeleLinearMap,
"AdeleLinearMap",
Adele,
parse_adele,
PyAdele,
wrap_adele
);
$macro!(
SurrealAlgebra,
"SurrealAlgebra",
SurrealMV,
"SurrealMV",
SurrealLinearMap,
"SurrealLinearMap",
Surreal,
parse_surreal,
PySurreal,
wrap_surreal
);
$macro!(
SurcomplexAlgebra,
"SurcomplexAlgebra",
SurcomplexMV,
"SurcomplexMV",
SurcomplexLinearMap,
"SurcomplexLinearMap",
Surcomplex<Surreal>,
parse_surcomplex,
PySurcomplex,
wrap_surcomplex
);
$macro!(
IntegerAlgebra,
"IntegerAlgebra",
IntegerMV,
"IntegerMV",
IntegerLinearMap,
"IntegerLinearMap",
Integer,
parse_integer,
PyInteger,
wrap_integer
);
$macro!(
IntegerPolyAlgebra,
"IntegerPolyAlgebra",
IntegerPolyMV,
"IntegerPolyMV",
IntegerPolyLinearMap,
"IntegerPolyLinearMap",
Poly<Integer>,
parse_integer_poly,
PyIntegerPoly,
wrap_integer_poly
);
$macro!(
OmnificAlgebra,
"OmnificAlgebra",
OmnificMV,
"OmnificMV",
OmnificLinearMap,
"OmnificLinearMap",
Omnific,
parse_omnific,
PyOmnific,
wrap_omnific
);
$macro!(
OrdinalAlgebra,
"OrdinalAlgebra",
OrdinalMV,
"OrdinalMV",
OrdinalLinearMap,
"OrdinalLinearMap",
Ordinal,
parse_ordinal,
PyOrdinal,
wrap_ordinal
);
};
}
macro_rules! py_divided_power_backends {
($macro:ident) => {
$macro!(
NimberDividedPowerAlgebra,
"NimberDividedPowerAlgebra",
NimberDpVector,
"NimberDpVector",
Nimber,
parse_nimber,
PyNimber,
wrap_nimber
);
$macro!(
Fp2DividedPowerAlgebra,
"Fp2DividedPowerAlgebra",
Fp2DpVector,
"Fp2DpVector",
Fp<2>,
parse_fp2,
PyFp2,
wrap_fp2
);
$macro!(
Fp3DividedPowerAlgebra,
"Fp3DividedPowerAlgebra",
Fp3DpVector,
"Fp3DpVector",
Fp<3>,
parse_fp3,
PyFp3,
wrap_fp3
);
$macro!(
Fp5DividedPowerAlgebra,
"Fp5DividedPowerAlgebra",
Fp5DpVector,
"Fp5DpVector",
Fp<5>,
parse_fp5,
PyFp5,
wrap_fp5
);
$macro!(
Fp7DividedPowerAlgebra,
"Fp7DividedPowerAlgebra",
Fp7DpVector,
"Fp7DpVector",
Fp<7>,
parse_fp7,
PyFp7,
wrap_fp7
);
$macro!(
Fp11DividedPowerAlgebra,
"Fp11DividedPowerAlgebra",
Fp11DpVector,
"Fp11DpVector",
Fp<11>,
parse_fp11,
PyFp11,
wrap_fp11
);
$macro!(
Fp13DividedPowerAlgebra,
"Fp13DividedPowerAlgebra",
Fp13DpVector,
"Fp13DpVector",
Fp<13>,
parse_fp13,
PyFp13,
wrap_fp13
);
$macro!(
F4DividedPowerAlgebra,
"F4DividedPowerAlgebra",
F4DpVector,
"F4DpVector",
Fpn<2, 2>,
parse_f4,
PyF4,
wrap_f4
);
$macro!(
F8DividedPowerAlgebra,
"F8DividedPowerAlgebra",
F8DpVector,
"F8DpVector",
Fpn<2, 3>,
parse_f8,
PyF8,
wrap_f8
);
$macro!(
F16DividedPowerAlgebra,
"F16DividedPowerAlgebra",
F16DpVector,
"F16DpVector",
Fpn<2, 4>,
parse_f16,
PyF16,
wrap_f16
);
$macro!(
F9DividedPowerAlgebra,
"F9DividedPowerAlgebra",
F9DpVector,
"F9DpVector",
Fpn<3, 2>,
parse_f9,
PyF9,
wrap_f9
);
$macro!(
F25DividedPowerAlgebra,
"F25DividedPowerAlgebra",
F25DpVector,
"F25DpVector",
Fpn<5, 2>,
parse_f25,
PyF25,
wrap_f25
);
$macro!(
F27DividedPowerAlgebra,
"F27DividedPowerAlgebra",
F27DpVector,
"F27DpVector",
Fpn<3, 3>,
parse_f27,
PyF27,
wrap_f27
);
$macro!(
Zp2_4DividedPowerAlgebra,
"Zp2_4DividedPowerAlgebra",
Zp2_4DpVector,
"Zp2_4DpVector",
Zp<2, 4>,
parse_zp2_4,
PyZp2_4,
wrap_zp2_4
);
$macro!(
Zp3_4DividedPowerAlgebra,
"Zp3_4DividedPowerAlgebra",
Zp3_4DpVector,
"Zp3_4DpVector",
Zp<3, 4>,
parse_zp3_4,
PyZp3_4,
wrap_zp3_4
);
$macro!(
Zp5_4DividedPowerAlgebra,
"Zp5_4DividedPowerAlgebra",
Zp5_4DpVector,
"Zp5_4DpVector",
Zp<5, 4>,
parse_zp5_4,
PyZp5_4,
wrap_zp5_4
);
$macro!(
Zp7_4DividedPowerAlgebra,
"Zp7_4DividedPowerAlgebra",
Zp7_4DpVector,
"Zp7_4DpVector",
Zp<7, 4>,
parse_zp7_4,
PyZp7_4,
wrap_zp7_4
);
$macro!(
Zp11_4DividedPowerAlgebra,
"Zp11_4DividedPowerAlgebra",
Zp11_4DpVector,
"Zp11_4DpVector",
Zp<11, 4>,
parse_zp11_4,
PyZp11_4,
wrap_zp11_4
);
$macro!(
Zp13_4DividedPowerAlgebra,
"Zp13_4DividedPowerAlgebra",
Zp13_4DpVector,
"Zp13_4DpVector",
Zp<13, 4>,
parse_zp13_4,
PyZp13_4,
wrap_zp13_4
);
$macro!(
Qp2_4DividedPowerAlgebra,
"Qp2_4DividedPowerAlgebra",
Qp2_4DpVector,
"Qp2_4DpVector",
Qp<2, 4>,
parse_qp2_4,
PyQp2_4,
wrap_qp2_4
);
$macro!(
Qp3_4DividedPowerAlgebra,
"Qp3_4DividedPowerAlgebra",
Qp3_4DpVector,
"Qp3_4DpVector",
Qp<3, 4>,
parse_qp3_4,
PyQp3_4,
wrap_qp3_4
);
$macro!(
Qp5_4DividedPowerAlgebra,
"Qp5_4DividedPowerAlgebra",
Qp5_4DpVector,
"Qp5_4DpVector",
Qp<5, 4>,
parse_qp5_4,
PyQp5_4,
wrap_qp5_4
);
$macro!(
Qp7_4DividedPowerAlgebra,
"Qp7_4DividedPowerAlgebra",
Qp7_4DpVector,
"Qp7_4DpVector",
Qp<7, 4>,
parse_qp7_4,
PyQp7_4,
wrap_qp7_4
);
$macro!(
Qp11_4DividedPowerAlgebra,
"Qp11_4DividedPowerAlgebra",
Qp11_4DpVector,
"Qp11_4DpVector",
Qp<11, 4>,
parse_qp11_4,
PyQp11_4,
wrap_qp11_4
);
$macro!(
Qp13_4DividedPowerAlgebra,
"Qp13_4DividedPowerAlgebra",
Qp13_4DpVector,
"Qp13_4DpVector",
Qp<13, 4>,
parse_qp13_4,
PyQp13_4,
wrap_qp13_4
);
$macro!(
WittVec2_4_2DividedPowerAlgebra,
"WittVec2_4_2DividedPowerAlgebra",
WittVec2_4_2DpVector,
"WittVec2_4_2DpVector",
WittVec<2, 4, 2>,
parse_witt_vec2_4_2,
PyWittVec2_4_2,
wrap_witt_vec2_4_2
);
$macro!(
WittVec2_4_3DividedPowerAlgebra,
"WittVec2_4_3DividedPowerAlgebra",
WittVec2_4_3DpVector,
"WittVec2_4_3DpVector",
WittVec<2, 4, 3>,
parse_witt_vec2_4_3,
PyWittVec2_4_3,
wrap_witt_vec2_4_3
);
$macro!(
WittVec2_4_4DividedPowerAlgebra,
"WittVec2_4_4DividedPowerAlgebra",
WittVec2_4_4DpVector,
"WittVec2_4_4DpVector",
WittVec<2, 4, 4>,
parse_witt_vec2_4_4,
PyWittVec2_4_4,
wrap_witt_vec2_4_4
);
$macro!(
WittVec3_4_2DividedPowerAlgebra,
"WittVec3_4_2DividedPowerAlgebra",
WittVec3_4_2DpVector,
"WittVec3_4_2DpVector",
WittVec<3, 4, 2>,
parse_witt_vec3_4_2,
PyWittVec3_4_2,
wrap_witt_vec3_4_2
);
$macro!(
WittVec5_4_2DividedPowerAlgebra,
"WittVec5_4_2DividedPowerAlgebra",
WittVec5_4_2DpVector,
"WittVec5_4_2DpVector",
WittVec<5, 4, 2>,
parse_witt_vec5_4_2,
PyWittVec5_4_2,
wrap_witt_vec5_4_2
);
$macro!(
WittVec3_4_3DividedPowerAlgebra,
"WittVec3_4_3DividedPowerAlgebra",
WittVec3_4_3DpVector,
"WittVec3_4_3DpVector",
WittVec<3, 4, 3>,
parse_witt_vec3_4_3,
PyWittVec3_4_3,
wrap_witt_vec3_4_3
);
$macro!(
Qq2_4_2DividedPowerAlgebra,
"Qq2_4_2DividedPowerAlgebra",
Qq2_4_2DpVector,
"Qq2_4_2DpVector",
Qq<2, 4, 2>,
parse_qq2_4_2,
PyQq2_4_2,
wrap_qq2_4_2
);
$macro!(
Qq2_4_3DividedPowerAlgebra,
"Qq2_4_3DividedPowerAlgebra",
Qq2_4_3DpVector,
"Qq2_4_3DpVector",
Qq<2, 4, 3>,
parse_qq2_4_3,
PyQq2_4_3,
wrap_qq2_4_3
);
$macro!(
Qq2_4_4DividedPowerAlgebra,
"Qq2_4_4DividedPowerAlgebra",
Qq2_4_4DpVector,
"Qq2_4_4DpVector",
Qq<2, 4, 4>,
parse_qq2_4_4,
PyQq2_4_4,
wrap_qq2_4_4
);
$macro!(
Qq3_4_2DividedPowerAlgebra,
"Qq3_4_2DividedPowerAlgebra",
Qq3_4_2DpVector,
"Qq3_4_2DpVector",
Qq<3, 4, 2>,
parse_qq3_4_2,
PyQq3_4_2,
wrap_qq3_4_2
);
$macro!(
Qq5_4_2DividedPowerAlgebra,
"Qq5_4_2DividedPowerAlgebra",
Qq5_4_2DpVector,
"Qq5_4_2DpVector",
Qq<5, 4, 2>,
parse_qq5_4_2,
PyQq5_4_2,
wrap_qq5_4_2
);
$macro!(
Qq3_4_3DividedPowerAlgebra,
"Qq3_4_3DividedPowerAlgebra",
Qq3_4_3DpVector,
"Qq3_4_3DpVector",
Qq<3, 4, 3>,
parse_qq3_4_3,
PyQq3_4_3,
wrap_qq3_4_3
);
$macro!(
LaurentRational6DividedPowerAlgebra,
"LaurentRational_6DividedPowerAlgebra",
LaurentRational6DpVector,
"LaurentRational_6DpVector",
Laurent<Rational, 6>,
parse_laurent_rational_6,
PyLaurentRational6,
wrap_laurent_rational_6
);
$macro!(
LaurentFp3_6DividedPowerAlgebra,
"LaurentFp3_6DividedPowerAlgebra",
LaurentFp3_6DpVector,
"LaurentFp3_6DpVector",
Laurent<Fp<3>, 6>,
parse_laurent_fp3_6,
PyLaurentFp3_6,
wrap_laurent_fp3_6
);
$macro!(
LaurentFp5_6DividedPowerAlgebra,
"LaurentFp5_6DividedPowerAlgebra",
LaurentFp5_6DpVector,
"LaurentFp5_6DpVector",
Laurent<Fp<5>, 6>,
parse_laurent_fp5_6,
PyLaurentFp5_6,
wrap_laurent_fp5_6
);
$macro!(
LaurentFp7_6DividedPowerAlgebra,
"LaurentFp7_6DividedPowerAlgebra",
LaurentFp7_6DpVector,
"LaurentFp7_6DpVector",
Laurent<Fp<7>, 6>,
parse_laurent_fp7_6,
PyLaurentFp7_6,
wrap_laurent_fp7_6
);
$macro!(
LaurentFp11_6DividedPowerAlgebra,
"LaurentFp11_6DividedPowerAlgebra",
LaurentFp11_6DpVector,
"LaurentFp11_6DpVector",
Laurent<Fp<11>, 6>,
parse_laurent_fp11_6,
PyLaurentFp11_6,
wrap_laurent_fp11_6
);
$macro!(
LaurentFp13_6DividedPowerAlgebra,
"LaurentFp13_6DividedPowerAlgebra",
LaurentFp13_6DpVector,
"LaurentFp13_6DpVector",
Laurent<Fp<13>, 6>,
parse_laurent_fp13_6,
PyLaurentFp13_6,
wrap_laurent_fp13_6
);
$macro!(
LaurentF9_6DividedPowerAlgebra,
"LaurentF9_6DividedPowerAlgebra",
LaurentF9_6DpVector,
"LaurentF9_6DpVector",
Laurent<Fpn<3, 2>, 6>,
parse_laurent_f9_6,
PyLaurentF9_6,
wrap_laurent_f9_6
);
$macro!(
LaurentF25_6DividedPowerAlgebra,
"LaurentF25_6DividedPowerAlgebra",
LaurentF25_6DpVector,
"LaurentF25_6DpVector",
Laurent<Fpn<5, 2>, 6>,
parse_laurent_f25_6,
PyLaurentF25_6,
wrap_laurent_f25_6
);
$macro!(
LaurentF27_6DividedPowerAlgebra,
"LaurentF27_6DividedPowerAlgebra",
LaurentF27_6DpVector,
"LaurentF27_6DpVector",
Laurent<Fpn<3, 3>, 6>,
parse_laurent_f27_6,
PyLaurentF27_6,
wrap_laurent_f27_6
);
$macro!(
RamifiedQp2_4E2DividedPowerAlgebra,
"RamifiedQp2_4_E2DividedPowerAlgebra",
RamifiedQp2_4E2DpVector,
"RamifiedQp2_4_E2DpVector",
Ramified<Qp<2, 4>, 2>,
parse_ramified_qp2_4_e2,
PyRamifiedQp2_4E2,
wrap_ramified_qp2_4_e2
);
$macro!(
RamifiedQp3_4E2DividedPowerAlgebra,
"RamifiedQp3_4_E2DividedPowerAlgebra",
RamifiedQp3_4E2DpVector,
"RamifiedQp3_4_E2DpVector",
Ramified<Qp<3, 4>, 2>,
parse_ramified_qp3_4_e2,
PyRamifiedQp3_4E2,
wrap_ramified_qp3_4_e2
);
$macro!(
RamifiedQp5_4E2DividedPowerAlgebra,
"RamifiedQp5_4_E2DividedPowerAlgebra",
RamifiedQp5_4E2DpVector,
"RamifiedQp5_4_E2DpVector",
Ramified<Qp<5, 4>, 2>,
parse_ramified_qp5_4_e2,
PyRamifiedQp5_4E2,
wrap_ramified_qp5_4_e2
);
$macro!(
RamifiedQp7_4E2DividedPowerAlgebra,
"RamifiedQp7_4_E2DividedPowerAlgebra",
RamifiedQp7_4E2DpVector,
"RamifiedQp7_4_E2DpVector",
Ramified<Qp<7, 4>, 2>,
parse_ramified_qp7_4_e2,
PyRamifiedQp7_4E2,
wrap_ramified_qp7_4_e2
);
$macro!(
RamifiedQp11_4E2DividedPowerAlgebra,
"RamifiedQp11_4_E2DividedPowerAlgebra",
RamifiedQp11_4E2DpVector,
"RamifiedQp11_4_E2DpVector",
Ramified<Qp<11, 4>, 2>,
parse_ramified_qp11_4_e2,
PyRamifiedQp11_4E2,
wrap_ramified_qp11_4_e2
);
$macro!(
RamifiedQp13_4E2DividedPowerAlgebra,
"RamifiedQp13_4_E2DividedPowerAlgebra",
RamifiedQp13_4E2DpVector,
"RamifiedQp13_4_E2DpVector",
Ramified<Qp<13, 4>, 2>,
parse_ramified_qp13_4_e2,
PyRamifiedQp13_4E2,
wrap_ramified_qp13_4_e2
);
$macro!(
RamifiedQp2_4E3DividedPowerAlgebra,
"RamifiedQp2_4_E3DividedPowerAlgebra",
RamifiedQp2_4E3DpVector,
"RamifiedQp2_4_E3DpVector",
Ramified<Qp<2, 4>, 3>,
parse_ramified_qp2_4_e3,
PyRamifiedQp2_4E3,
wrap_ramified_qp2_4_e3
);
$macro!(
RamifiedQp3_4E3DividedPowerAlgebra,
"RamifiedQp3_4_E3DividedPowerAlgebra",
RamifiedQp3_4E3DpVector,
"RamifiedQp3_4_E3DpVector",
Ramified<Qp<3, 4>, 3>,
parse_ramified_qp3_4_e3,
PyRamifiedQp3_4E3,
wrap_ramified_qp3_4_e3
);
$macro!(
RamifiedQp5_4E3DividedPowerAlgebra,
"RamifiedQp5_4_E3DividedPowerAlgebra",
RamifiedQp5_4E3DpVector,
"RamifiedQp5_4_E3DpVector",
Ramified<Qp<5, 4>, 3>,
parse_ramified_qp5_4_e3,
PyRamifiedQp5_4E3,
wrap_ramified_qp5_4_e3
);
$macro!(
RamifiedQp7_4E3DividedPowerAlgebra,
"RamifiedQp7_4_E3DividedPowerAlgebra",
RamifiedQp7_4E3DpVector,
"RamifiedQp7_4_E3DpVector",
Ramified<Qp<7, 4>, 3>,
parse_ramified_qp7_4_e3,
PyRamifiedQp7_4E3,
wrap_ramified_qp7_4_e3
);
$macro!(
RamifiedQp11_4E3DividedPowerAlgebra,
"RamifiedQp11_4_E3DividedPowerAlgebra",
RamifiedQp11_4E3DpVector,
"RamifiedQp11_4_E3DpVector",
Ramified<Qp<11, 4>, 3>,
parse_ramified_qp11_4_e3,
PyRamifiedQp11_4E3,
wrap_ramified_qp11_4_e3
);
$macro!(
RamifiedQp13_4E3DividedPowerAlgebra,
"RamifiedQp13_4_E3DividedPowerAlgebra",
RamifiedQp13_4E3DpVector,
"RamifiedQp13_4_E3DpVector",
Ramified<Qp<13, 4>, 3>,
parse_ramified_qp13_4_e3,
PyRamifiedQp13_4E3,
wrap_ramified_qp13_4_e3
);
$macro!(
GaussQp2_4DividedPowerAlgebra,
"GaussQp2_4DividedPowerAlgebra",
GaussQp2_4DpVector,
"GaussQp2_4DpVector",
Gauss<Qp<2, 4>>,
parse_gauss_qp2_4,
PyGaussQp2_4,
wrap_gauss_qp2_4
);
$macro!(
GaussQp3_4DividedPowerAlgebra,
"GaussQp3_4DividedPowerAlgebra",
GaussQp3_4DpVector,
"GaussQp3_4DpVector",
Gauss<Qp<3, 4>>,
parse_gauss_qp3_4,
PyGaussQp3_4,
wrap_gauss_qp3_4
);
$macro!(
GaussQp5_4DividedPowerAlgebra,
"GaussQp5_4DividedPowerAlgebra",
GaussQp5_4DpVector,
"GaussQp5_4DpVector",
Gauss<Qp<5, 4>>,
parse_gauss_qp5_4,
PyGaussQp5_4,
wrap_gauss_qp5_4
);
$macro!(
GaussQp7_4DividedPowerAlgebra,
"GaussQp7_4DividedPowerAlgebra",
GaussQp7_4DpVector,
"GaussQp7_4DpVector",
Gauss<Qp<7, 4>>,
parse_gauss_qp7_4,
PyGaussQp7_4,
wrap_gauss_qp7_4
);
$macro!(
GaussQp11_4DividedPowerAlgebra,
"GaussQp11_4DividedPowerAlgebra",
GaussQp11_4DpVector,
"GaussQp11_4DpVector",
Gauss<Qp<11, 4>>,
parse_gauss_qp11_4,
PyGaussQp11_4,
wrap_gauss_qp11_4
);
$macro!(
GaussQp13_4DividedPowerAlgebra,
"GaussQp13_4DividedPowerAlgebra",
GaussQp13_4DpVector,
"GaussQp13_4DpVector",
Gauss<Qp<13, 4>>,
parse_gauss_qp13_4,
PyGaussQp13_4,
wrap_gauss_qp13_4
);
$macro!(
NimberPolyDividedPowerAlgebra,
"NimberPolyDividedPowerAlgebra",
NimberPolyDpVector,
"NimberPolyDpVector",
Poly<Nimber>,
parse_nimber_poly,
PyNimberPoly,
wrap_nimber_poly
);
$macro!(
NimberRationalFunctionDividedPowerAlgebra,
"NimberRationalFunctionDividedPowerAlgebra",
NimberRationalFunctionDpVector,
"NimberRationalFunctionDpVector",
RationalFunction<Nimber>,
parse_nimber_rational_function,
PyNimberRationalFunction,
wrap_nimber_rational_function
);
$macro!(
Fp2PolyDividedPowerAlgebra,
"Fp2PolyDividedPowerAlgebra",
Fp2PolyDpVector,
"Fp2PolyDpVector",
Poly<Fp<2>>,
parse_fp2_poly,
PyFp2Poly,
wrap_fp2_poly
);
$macro!(
Fp2RationalFunctionDividedPowerAlgebra,
"Fp2RationalFunctionDividedPowerAlgebra",
Fp2RationalFunctionDpVector,
"Fp2RationalFunctionDpVector",
RationalFunction<Fp<2>>,
parse_fp2_rational_function,
PyFp2RationalFunction,
wrap_fp2_rational_function
);
$macro!(
Fp3PolyDividedPowerAlgebra,
"Fp3PolyDividedPowerAlgebra",
Fp3PolyDpVector,
"Fp3PolyDpVector",
Poly<Fp<3>>,
parse_fp3_poly,
PyFp3Poly,
wrap_fp3_poly
);
$macro!(
Fp3RationalFunctionDividedPowerAlgebra,
"Fp3RationalFunctionDividedPowerAlgebra",
Fp3RationalFunctionDpVector,
"Fp3RationalFunctionDpVector",
RationalFunction<Fp<3>>,
parse_fp3_rational_function,
PyFp3RationalFunction,
wrap_fp3_rational_function
);
$macro!(
Fp5PolyDividedPowerAlgebra,
"Fp5PolyDividedPowerAlgebra",
Fp5PolyDpVector,
"Fp5PolyDpVector",
Poly<Fp<5>>,
parse_fp5_poly,
PyFp5Poly,
wrap_fp5_poly
);
$macro!(
Fp5RationalFunctionDividedPowerAlgebra,
"Fp5RationalFunctionDividedPowerAlgebra",
Fp5RationalFunctionDpVector,
"Fp5RationalFunctionDpVector",
RationalFunction<Fp<5>>,
parse_fp5_rational_function,
PyFp5RationalFunction,
wrap_fp5_rational_function
);
$macro!(
Fp7PolyDividedPowerAlgebra,
"Fp7PolyDividedPowerAlgebra",
Fp7PolyDpVector,
"Fp7PolyDpVector",
Poly<Fp<7>>,
parse_fp7_poly,
PyFp7Poly,
wrap_fp7_poly
);
$macro!(
Fp7RationalFunctionDividedPowerAlgebra,
"Fp7RationalFunctionDividedPowerAlgebra",
Fp7RationalFunctionDpVector,
"Fp7RationalFunctionDpVector",
RationalFunction<Fp<7>>,
parse_fp7_rational_function,
PyFp7RationalFunction,
wrap_fp7_rational_function
);
$macro!(
Fp11PolyDividedPowerAlgebra,
"Fp11PolyDividedPowerAlgebra",
Fp11PolyDpVector,
"Fp11PolyDpVector",
Poly<Fp<11>>,
parse_fp11_poly,
PyFp11Poly,
wrap_fp11_poly
);
$macro!(
Fp11RationalFunctionDividedPowerAlgebra,
"Fp11RationalFunctionDividedPowerAlgebra",
Fp11RationalFunctionDpVector,
"Fp11RationalFunctionDpVector",
RationalFunction<Fp<11>>,
parse_fp11_rational_function,
PyFp11RationalFunction,
wrap_fp11_rational_function
);
$macro!(
Fp13PolyDividedPowerAlgebra,
"Fp13PolyDividedPowerAlgebra",
Fp13PolyDpVector,
"Fp13PolyDpVector",
Poly<Fp<13>>,
parse_fp13_poly,
PyFp13Poly,
wrap_fp13_poly
);
$macro!(
Fp13RationalFunctionDividedPowerAlgebra,
"Fp13RationalFunctionDividedPowerAlgebra",
Fp13RationalFunctionDpVector,
"Fp13RationalFunctionDpVector",
RationalFunction<Fp<13>>,
parse_fp13_rational_function,
PyFp13RationalFunction,
wrap_fp13_rational_function
);
$macro!(
RationalDividedPowerAlgebra,
"RationalDividedPowerAlgebra",
RationalDpVector,
"RationalDpVector",
Rational,
parse_rational,
PyRational,
wrap_rational
);
$macro!(
AdeleDividedPowerAlgebra,
"AdeleDividedPowerAlgebra",
AdeleDpVector,
"AdeleDpVector",
Adele,
parse_adele,
PyAdele,
wrap_adele
);
$macro!(
SurrealDividedPowerAlgebra,
"SurrealDividedPowerAlgebra",
SurrealDpVector,
"SurrealDpVector",
Surreal,
parse_surreal,
PySurreal,
wrap_surreal
);
$macro!(
SurcomplexDividedPowerAlgebra,
"SurcomplexDividedPowerAlgebra",
SurcomplexDpVector,
"SurcomplexDpVector",
Surcomplex<Surreal>,
parse_surcomplex,
PySurcomplex,
wrap_surcomplex
);
$macro!(
IntegerDividedPowerAlgebra,
"IntegerDividedPowerAlgebra",
IntegerDpVector,
"IntegerDpVector",
Integer,
parse_integer,
PyInteger,
wrap_integer
);
$macro!(
IntegerPolyDividedPowerAlgebra,
"IntegerPolyDividedPowerAlgebra",
IntegerPolyDpVector,
"IntegerPolyDpVector",
Poly<Integer>,
parse_integer_poly,
PyIntegerPoly,
wrap_integer_poly
);
$macro!(
OmnificDividedPowerAlgebra,
"OmnificDividedPowerAlgebra",
OmnificDpVector,
"OmnificDpVector",
Omnific,
parse_omnific,
PyOmnific,
wrap_omnific
);
$macro!(
OrdinalDividedPowerAlgebra,
"OrdinalDividedPowerAlgebra",
OrdinalDpVector,
"OrdinalDpVector",
Ordinal,
parse_ordinal,
PyOrdinal,
wrap_ordinal
);
};
}
macro_rules! py_cga_backends {
($macro:ident) => {
$macro!(
PySurrealCga,
"SurrealCga",
Surreal,
SurrealMV,
PySurreal,
parse_surreal,
wrap_surreal
);
$macro!(
PyRationalCga,
"RationalCga",
Rational,
RationalMV,
PyRational,
parse_rational,
wrap_rational
);
$macro!(
PyAdeleCga,
"AdeleCga",
Adele,
AdeleMV,
PyAdele,
parse_adele,
wrap_adele
);
$macro!(
PySurcomplexCga,
"SurcomplexCga",
Surcomplex<Surreal>,
SurcomplexMV,
PySurcomplex,
parse_surcomplex,
wrap_surcomplex
);
$macro!(PyQp2_4Cga, "Qp2_4Cga", Qp<2, 4>, Qp2_4MV, PyQp2_4, parse_qp2_4, wrap_qp2_4);
$macro!(PyQp3_4Cga, "Qp3_4Cga", Qp<3, 4>, Qp3_4MV, PyQp3_4, parse_qp3_4, wrap_qp3_4);
$macro!(PyQp5_4Cga, "Qp5_4Cga", Qp<5, 4>, Qp5_4MV, PyQp5_4, parse_qp5_4, wrap_qp5_4);
$macro!(PyQp7_4Cga, "Qp7_4Cga", Qp<7, 4>, Qp7_4MV, PyQp7_4, parse_qp7_4, wrap_qp7_4);
$macro!(
PyQp11_4Cga,
"Qp11_4Cga",
Qp<11, 4>,
Qp11_4MV,
PyQp11_4,
parse_qp11_4,
wrap_qp11_4
);
$macro!(
PyQp13_4Cga,
"Qp13_4Cga",
Qp<13, 4>,
Qp13_4MV,
PyQp13_4,
parse_qp13_4,
wrap_qp13_4
);
$macro!(
PyQq2_4_2Cga,
"Qq2_4_2Cga",
Qq<2, 4, 2>,
Qq2_4_2MV,
PyQq2_4_2,
parse_qq2_4_2,
wrap_qq2_4_2
);
$macro!(
PyQq2_4_3Cga,
"Qq2_4_3Cga",
Qq<2, 4, 3>,
Qq2_4_3MV,
PyQq2_4_3,
parse_qq2_4_3,
wrap_qq2_4_3
);
$macro!(
PyQq2_4_4Cga,
"Qq2_4_4Cga",
Qq<2, 4, 4>,
Qq2_4_4MV,
PyQq2_4_4,
parse_qq2_4_4,
wrap_qq2_4_4
);
$macro!(
PyQq3_4_2Cga,
"Qq3_4_2Cga",
Qq<3, 4, 2>,
Qq3_4_2MV,
PyQq3_4_2,
parse_qq3_4_2,
wrap_qq3_4_2
);
$macro!(
PyQq5_4_2Cga,
"Qq5_4_2Cga",
Qq<5, 4, 2>,
Qq5_4_2MV,
PyQq5_4_2,
parse_qq5_4_2,
wrap_qq5_4_2
);
$macro!(
PyQq3_4_3Cga,
"Qq3_4_3Cga",
Qq<3, 4, 3>,
Qq3_4_3MV,
PyQq3_4_3,
parse_qq3_4_3,
wrap_qq3_4_3
);
$macro!(
PyLaurentRational6Cga,
"LaurentRational6Cga",
Laurent<Rational, 6>,
LaurentRational6MV,
PyLaurentRational6,
parse_laurent_rational_6,
wrap_laurent_rational_6
);
$macro!(
PyRamifiedQp2_4E2Cga,
"RamifiedQp2_4_E2Cga",
Ramified<Qp<2, 4>, 2>,
RamifiedQp2_4E2MV,
PyRamifiedQp2_4E2,
parse_ramified_qp2_4_e2,
wrap_ramified_qp2_4_e2
);
$macro!(
PyRamifiedQp3_4E2Cga,
"RamifiedQp3_4_E2Cga",
Ramified<Qp<3, 4>, 2>,
RamifiedQp3_4E2MV,
PyRamifiedQp3_4E2,
parse_ramified_qp3_4_e2,
wrap_ramified_qp3_4_e2
);
$macro!(
PyRamifiedQp5_4E2Cga,
"RamifiedQp5_4_E2Cga",
Ramified<Qp<5, 4>, 2>,
RamifiedQp5_4E2MV,
PyRamifiedQp5_4E2,
parse_ramified_qp5_4_e2,
wrap_ramified_qp5_4_e2
);
$macro!(
PyRamifiedQp7_4E2Cga,
"RamifiedQp7_4_E2Cga",
Ramified<Qp<7, 4>, 2>,
RamifiedQp7_4E2MV,
PyRamifiedQp7_4E2,
parse_ramified_qp7_4_e2,
wrap_ramified_qp7_4_e2
);
$macro!(
PyRamifiedQp11_4E2Cga,
"RamifiedQp11_4_E2Cga",
Ramified<Qp<11, 4>, 2>,
RamifiedQp11_4E2MV,
PyRamifiedQp11_4E2,
parse_ramified_qp11_4_e2,
wrap_ramified_qp11_4_e2
);
$macro!(
PyRamifiedQp13_4E2Cga,
"RamifiedQp13_4_E2Cga",
Ramified<Qp<13, 4>, 2>,
RamifiedQp13_4E2MV,
PyRamifiedQp13_4E2,
parse_ramified_qp13_4_e2,
wrap_ramified_qp13_4_e2
);
$macro!(
PyRamifiedQp2_4E3Cga,
"RamifiedQp2_4_E3Cga",
Ramified<Qp<2, 4>, 3>,
RamifiedQp2_4E3MV,
PyRamifiedQp2_4E3,
parse_ramified_qp2_4_e3,
wrap_ramified_qp2_4_e3
);
$macro!(
PyRamifiedQp3_4E3Cga,
"RamifiedQp3_4_E3Cga",
Ramified<Qp<3, 4>, 3>,
RamifiedQp3_4E3MV,
PyRamifiedQp3_4E3,
parse_ramified_qp3_4_e3,
wrap_ramified_qp3_4_e3
);
$macro!(
PyRamifiedQp5_4E3Cga,
"RamifiedQp5_4_E3Cga",
Ramified<Qp<5, 4>, 3>,
RamifiedQp5_4E3MV,
PyRamifiedQp5_4E3,
parse_ramified_qp5_4_e3,
wrap_ramified_qp5_4_e3
);
$macro!(
PyRamifiedQp7_4E3Cga,
"RamifiedQp7_4_E3Cga",
Ramified<Qp<7, 4>, 3>,
RamifiedQp7_4E3MV,
PyRamifiedQp7_4E3,
parse_ramified_qp7_4_e3,
wrap_ramified_qp7_4_e3
);
$macro!(
PyRamifiedQp11_4E3Cga,
"RamifiedQp11_4_E3Cga",
Ramified<Qp<11, 4>, 3>,
RamifiedQp11_4E3MV,
PyRamifiedQp11_4E3,
parse_ramified_qp11_4_e3,
wrap_ramified_qp11_4_e3
);
$macro!(
PyRamifiedQp13_4E3Cga,
"RamifiedQp13_4_E3Cga",
Ramified<Qp<13, 4>, 3>,
RamifiedQp13_4E3MV,
PyRamifiedQp13_4E3,
parse_ramified_qp13_4_e3,
wrap_ramified_qp13_4_e3
);
$macro!(
PyGaussQp2_4Cga,
"GaussQp2_4Cga",
Gauss<Qp<2, 4>>,
GaussQp2_4MV,
PyGaussQp2_4,
parse_gauss_qp2_4,
wrap_gauss_qp2_4
);
$macro!(
PyGaussQp3_4Cga,
"GaussQp3_4Cga",
Gauss<Qp<3, 4>>,
GaussQp3_4MV,
PyGaussQp3_4,
parse_gauss_qp3_4,
wrap_gauss_qp3_4
);
$macro!(
PyGaussQp5_4Cga,
"GaussQp5_4Cga",
Gauss<Qp<5, 4>>,
GaussQp5_4MV,
PyGaussQp5_4,
parse_gauss_qp5_4,
wrap_gauss_qp5_4
);
$macro!(
PyGaussQp7_4Cga,
"GaussQp7_4Cga",
Gauss<Qp<7, 4>>,
GaussQp7_4MV,
PyGaussQp7_4,
parse_gauss_qp7_4,
wrap_gauss_qp7_4
);
$macro!(
PyGaussQp11_4Cga,
"GaussQp11_4Cga",
Gauss<Qp<11, 4>>,
GaussQp11_4MV,
PyGaussQp11_4,
parse_gauss_qp11_4,
wrap_gauss_qp11_4
);
$macro!(
PyGaussQp13_4Cga,
"GaussQp13_4Cga",
Gauss<Qp<13, 4>>,
GaussQp13_4MV,
PyGaussQp13_4,
parse_gauss_qp13_4,
wrap_gauss_qp13_4
);
};
}