Révision 116
pobysoPythonSage/src/pobyso.py (revision 116) | ||
---|---|---|
742 | 742 |
|
743 | 743 |
def pobyso_lib_init(): |
744 | 744 |
sollya_lib_init(None) |
745 |
|
|
746 |
def pobyso_lib_close(): |
|
747 |
sollya_lib_close(None) |
|
745 | 748 |
|
746 | 749 |
def pobyso_name_free_variable(freeVariableNameSa): |
747 | 750 |
""" Legacy function. See pobyso_name_free_variable_sa_so. """ |
... | ... | |
1027 | 1030 |
taylorFormSo = sollya_lib_taylorform(functionSo, degreeSo, \ |
1028 | 1031 |
intervalCenterSo, \ |
1029 | 1032 |
rangeSo, errorTypeSo, None) |
1030 |
(taylorFormListSo, numElementsSo, isEndEllipticSo) = \ |
|
1033 |
# taylorFormListSaSo is a Python list of Sollya objects references that |
|
1034 |
# are copies of the elements of taylorFormSo. |
|
1035 |
# pobyso_get_list_elements_so_so clears taylorFormSo. |
|
1036 |
(taylorFormListSaSo, numElementsSa, isEndEllipticSa) = \ |
|
1031 | 1037 |
pobyso_get_list_elements_so_so(taylorFormSo) |
1032 |
polySo = sollya_lib_copy_obj(taylorFormListSo[0]) |
|
1033 |
errorRangeSo = taylorFormListSo[2] |
|
1038 |
polySo = sollya_lib_copy_obj(taylorFormListSaSo[0]) |
|
1039 |
#errorRangeSo = sollya_lib_copy_obj(taylorFormListSaSo[2]) |
|
1040 |
#polySo = taylorFormListSaSo[0] |
|
1041 |
errorRangeSo = taylorFormListSaSo[2] |
|
1034 | 1042 |
# No copy_obj needed here: a new object is created. |
1035 | 1043 |
maxErrorSo = sollya_lib_sup(errorRangeSo) |
1036 | 1044 |
# If changed, reset the Sollya working precision. |
... | ... | |
1039 | 1047 |
sollya_lib_clear_obj(initialPrecSo) |
1040 | 1048 |
if errorTypeIsNone: |
1041 | 1049 |
sollya_lib_clear_obj(errorTypeSo) |
1042 |
sollya_lib_clear_obj(taylorFormSo) |
|
1043 |
for element in taylorFormListSo: |
|
1050 |
for element in taylorFormListSaSo: |
|
1044 | 1051 |
sollya_lib_clear_obj(element) |
1045 |
# Those are cleared with taylorFormSo. |
|
1046 |
#sollya_lib_clear_obj(numElementsSo) |
|
1047 |
#sollya_lib_clear_obj(isEndEllipticSo) |
|
1048 | 1052 |
return((polySo, intervalCenterSo, maxErrorSo)) |
1049 | 1053 |
# end pobyso_taylor_expansion_no_change_var_so_so |
1050 | 1054 |
|
pobysoPythonSage/src/sollya_lib.sage (revision 116) | ||
---|---|---|
59 | 59 |
sollya_lib_infnorm = sollya.sollya_lib_infnorm |
60 | 60 |
sollya_lib_init= sollya.sollya_lib_init |
61 | 61 |
sollya_lib_is_absolute = sollya.sollya_lib_is_absolute |
62 |
sollya_lib_is_empty_object_list = \ |
|
63 |
sollya.sollya_lib_is_empty_object_list |
|
62 | 64 |
sollya_lib_is_off = sollya.sollya_lib_is_off |
63 | 65 |
sollya_lib_is_on = sollya.sollya_lib_is_on |
64 | 66 |
sollya_lib_mid = sollya.sollya_lib_mid |
... | ... | |
134 | 136 |
sollya_lib_get_constant_as_int(byref(a), retc) |
135 | 137 |
print "Precision : ", a.value |
136 | 138 |
print "Address of a.value ", addressof(a) |
139 |
sollya_lib_close(None) |
|
137 | 140 |
print "...Sollya library check done." |
138 | 141 |
# |
139 | 142 |
# |
pobysoPythonSage/src/testPobyso.sage (revision 116) | ||
---|---|---|
1 |
""" |
|
2 |
Test module for pobyso.py functions. |
|
3 |
|
|
4 |
AUTHORS: |
|
5 |
- S.T. (2014-02-26): initial version |
|
6 |
|
|
7 |
TODO: |
|
8 |
- everything! |
|
9 |
|
|
10 |
""" |
|
11 |
|
|
12 |
print "\ntestPobyso loading..." |
|
13 |
# |
|
14 |
import inspect |
|
15 |
import resource |
|
16 |
|
|
17 |
|
|
18 |
def memory_usage_resource(): |
|
19 |
rusage_denom = RR("1024") |
|
20 |
if sys.platform == 'darwin': |
|
21 |
# ... it seems that in OSX the output is different units ... |
|
22 |
rusage_denom = rusage_denom * rusage_denom |
|
23 |
mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / rusage_denom |
|
24 |
return mem |
|
25 |
# End memory_usage_resource() |
|
26 |
|
|
27 |
# |
|
28 |
def test_pobyso_absolute_so_so(): |
|
29 |
for index in xrange(0,1000000): |
|
30 |
absoluteSo = pobyso_absolute_so_so() |
|
31 |
sollya_lib_clear_obj(absoluteSo) |
|
32 |
# End test_absolute_so_so |
|
33 |
|
|
34 |
def test_pobyso_autoprint_so_so(iterationsNum=1000): |
|
35 |
absoluteSo = pobyso_absolute_so_so() |
|
36 |
for index in xrange(0,iterationsNum): |
|
37 |
pobyso_autoprint(absoluteSo) |
|
38 |
sollya_lib_clear_obj(absoluteSo) |
|
39 |
# End test_pobyso_autoprint |
|
40 |
|
|
41 |
def test_pobyso_bounds_to_range_sa_so(iterationsNum=10000): |
|
42 |
global t |
|
43 |
print "Running", inspect.stack()[0][3] |
|
44 |
lowerBoundSa = RR(1) |
|
45 |
upperBoundSa = RR(2) |
|
46 |
precSo = pobyso_get_prec_so() |
|
47 |
pobyso_autoprint(precSo) |
|
48 |
for index in xrange(0,iterationsNum): |
|
49 |
rangeSo = pobyso_bounds_to_range_sa_so(lowerBoundSa, upperBoundSa) |
|
50 |
sollya_lib_clear_obj(rangeSo) |
|
51 |
precSo = pobyso_get_prec_so() |
|
52 |
pobyso_autoprint(precSo) |
|
53 |
sollya_lib_clear_obj(precSo) |
|
54 |
# End test_pobyso_bounds_to_range_sa_so |
|
55 |
|
|
56 |
def test_pobyso_get_prec_so_sa(iterationsNum=10000): |
|
57 |
print "Running", inspect.stack()[0][3] |
|
58 |
for index in xrange(0,iterationsNum): |
|
59 |
precSa = pobyso_get_prec_so_sa() |
|
60 |
# End test_pobyso_get_prec_so_sa |
|
61 |
|
|
62 |
def test_pobyso_get_prec_of_constant_so_sa(iterationsNum=10000): |
|
63 |
print "Running", inspect.stack()[0][3] |
|
64 |
constSo = pobyso_constant_from_int_sa_so(2) |
|
65 |
for index in xrange(0,iterationsNum): |
|
66 |
precSa = pobyso_get_prec_of_constant_so_sa(constSo) |
|
67 |
sollya_lib_clear_obj(constSo) |
|
68 |
# End test_pobyso_get_prec_of_constant_so_sa |
|
69 |
|
|
70 |
def test_pobyso_lib_init(iterationsNum=10000): |
|
71 |
""" |
|
72 |
Must be called exactly once. Leaks lots of memory otherwise. |
|
73 |
""" |
|
74 |
print "Running", inspect.stack()[0][3] |
|
75 |
for index in xrange(0,iterationsNum): |
|
76 |
pobyso_lib_init() |
|
77 |
#pobyso_lib_close() |
|
78 |
# End test_pobyso_lib_init |
|
79 |
|
|
80 |
def test_pobyso_parse_string_sa_so(iterationsNum=10000): |
|
81 |
print "Running", inspect.stack()[0][3] |
|
82 |
for index in xrange(0,iterationsNum): |
|
83 |
expressionSo = pobyso_parse_string_sa_so('exp(x)+2*x*sin(x)') |
|
84 |
sollya_lib_clear_obj(expressionSo) |
|
85 |
# End pobyso_parse_string_sa_so |
|
86 |
|
|
87 |
def test_pobyso_taylor_expansion_no_change_var_so_so(iterationsNum=10000): |
|
88 |
functionSo = pobyso_parse_string('exp(x)') |
|
89 |
degreeSo = pobyso_constant_from_int_sa_so(20) |
|
90 |
rangeSo = pobyso_bounds_to_range_sa_so(RR(1),RR(2)) |
|
91 |
errorTypeSo = pobyso_absolute_so_so() |
|
92 |
for index in xrange(0,iterationsNum): |
|
93 |
teSo = pobyso_taylor_expansion_no_change_var_so_so(functionSo, |
|
94 |
degreeSo, |
|
95 |
rangeSo, |
|
96 |
errorTypeSo) |
|
97 |
sollya_lib_clear_obj(teSo[0]) |
|
98 |
sollya_lib_clear_obj(teSo[1]) |
|
99 |
sollya_lib_clear_obj(teSo[2]) |
|
100 |
sollya_lib_clear_obj(functionSo) |
|
101 |
sollya_lib_clear_obj(degreeSo) |
|
102 |
sollya_lib_clear_obj(rangeSo) |
|
103 |
sollya_lib_clear_obj(errorTypeSo) |
|
104 |
# End test_pobyso_taylor_expansion_no_change_var_so_so |
|
105 |
|
|
106 |
print "\t...testPobyso loaded" |
Formats disponibles : Unified diff