equal
deleted
inserted
replaced
12 type float = Float.float |
12 type float = Float.float |
13 val approx_value : int -> (float -> float) -> string -> term * term |
13 val approx_value : int -> (float -> float) -> string -> term * term |
14 val approx_vector : int -> (float -> float) -> vector -> term * term |
14 val approx_vector : int -> (float -> float) -> vector -> term * term |
15 val approx_matrix : int -> (float -> float) -> matrix -> term * term |
15 val approx_matrix : int -> (float -> float) -> matrix -> term * term |
16 |
16 |
17 val mk_spvec_entry : Intt.int -> float -> term |
17 val mk_spvec_entry : integer -> float -> term |
18 val mk_spmat_entry : Intt.int -> term -> term |
18 val mk_spmat_entry : integer -> term -> term |
19 val spvecT: typ |
19 val spvecT: typ |
20 val spmatT: typ |
20 val spmatT: typ |
21 |
21 |
22 val v_elem_at : vector -> int -> string option |
22 val v_elem_at : vector -> int -> string option |
23 val m_elem_at : matrix -> int -> vector option |
23 val m_elem_at : matrix -> int -> vector option |
62 fun approx_vector prec pprt vector = |
62 fun approx_vector prec pprt vector = |
63 let |
63 let |
64 fun app (index, s) (lower, upper) = |
64 fun app (index, s) (lower, upper) = |
65 let |
65 let |
66 val (flower, fupper) = approx_value prec pprt s |
66 val (flower, fupper) = approx_value prec pprt s |
67 val index = HOLogic.mk_number HOLogic.natT (Intt.int index) |
67 val index = HOLogic.mk_number HOLogic.natT (Integer.int index) |
68 val elower = HOLogic.mk_prod (index, flower) |
68 val elower = HOLogic.mk_prod (index, flower) |
69 val eupper = HOLogic.mk_prod (index, fupper) |
69 val eupper = HOLogic.mk_prod (index, fupper) |
70 in (elower :: lower, eupper :: upper) end; |
70 in (elower :: lower, eupper :: upper) end; |
71 in |
71 in |
72 pairself (HOLogic.mk_list spvecT) (Inttab.fold app vector ([], [])) |
72 pairself (HOLogic.mk_list spvecT) (Inttab.fold app vector ([], [])) |
75 fun approx_matrix prec pprt vector = |
75 fun approx_matrix prec pprt vector = |
76 let |
76 let |
77 fun app (index, v) (lower, upper) = |
77 fun app (index, v) (lower, upper) = |
78 let |
78 let |
79 val (flower, fupper) = approx_vector prec pprt v |
79 val (flower, fupper) = approx_vector prec pprt v |
80 val index = HOLogic.mk_number HOLogic.natT (Intt.int index) |
80 val index = HOLogic.mk_number HOLogic.natT (Integer.int index) |
81 val elower = HOLogic.mk_prod (index, flower) |
81 val elower = HOLogic.mk_prod (index, flower) |
82 val eupper = HOLogic.mk_prod (index, fupper) |
82 val eupper = HOLogic.mk_prod (index, fupper) |
83 in (elower :: lower, eupper :: upper) end; |
83 in (elower :: lower, eupper :: upper) end; |
84 in |
84 in |
85 pairself (HOLogic.mk_list spmatT) (Inttab.fold app vector ([], [])) |
85 pairself (HOLogic.mk_list spmatT) (Inttab.fold app vector ([], [])) |