Révision 181 pobysoPythonSage/src/sageSLZ/sageSLZ.sage
sageSLZ.sage (revision 181) | ||
---|---|---|
426 | 426 |
absoluteErrorTypeSo) |
427 | 427 |
maxErrorSa = pobyso_get_constant_as_rn_with_rf_so_sa(maxErrorSo) |
428 | 428 |
while maxErrorSa > approxPrecSa: |
429 |
print "++Approximation error:", maxErrorSa |
|
429 |
print "++Approximation error:", maxErrorSa.n()
|
|
430 | 430 |
sollya_lib_clear_obj(polySo) |
431 | 431 |
sollya_lib_clear_obj(intervalCenterSo) |
432 | 432 |
sollya_lib_clear_obj(maxErrorSo) |
433 |
# Very empirical schrinking factor.
|
|
433 |
# Very empirical shrinking factor. |
|
434 | 434 |
shrinkFactorSa = 1 / (maxErrorSa/approxPrecSa).log2().abs() |
435 |
print "Shrink factor:", shrinkFactorSa, intervalShrinkConstFactorSa |
|
435 |
print "Shrink factor:", \ |
|
436 |
shrinkFactorSa.n(), \ |
|
437 |
intervalShrinkConstFactorSa |
|
436 | 438 |
#errorRatioSa = approxPrecSa/maxErrorSa |
437 | 439 |
#print "Error ratio: ", errorRatioSa |
440 |
# Make sure interval shrinks. |
|
438 | 441 |
if shrinkFactorSa > intervalShrinkConstFactorSa: |
439 | 442 |
actualShrinkFactorSa = intervalShrinkConstFactorSa |
440 | 443 |
#print "Fixed" |
... | ... | |
444 | 447 |
#print shrinkFactorSa, maxErrorSa |
445 | 448 |
#print "Shrink factor", actualShrinkFactorSa |
446 | 449 |
currentUpperBoundSa = currentLowerBoundSa + \ |
447 |
(currentUpperBoundSa - currentLowerBoundSa) * \
|
|
448 |
actualShrinkFactorSa
|
|
450 |
(currentUpperBoundSa - currentLowerBoundSa) * \ |
|
451 |
actualShrinkFactorSa |
|
449 | 452 |
#print "Current upper bound:", currentUpperBoundSa |
450 | 453 |
sollya_lib_clear_obj(currentRangeSo) |
454 |
# Check what is left with the bounds. |
|
451 | 455 |
if currentUpperBoundSa <= currentLowerBoundSa or \ |
452 | 456 |
currentUpperBoundSa == currentLowerBoundSa.nextabove(): |
453 | 457 |
sollya_lib_clear_obj(absoluteErrorTypeSo) |
... | ... | |
1349 | 1353 |
is not 0. |
1350 | 1354 |
Return () otherwise. |
1351 | 1355 |
""" |
1352 |
polynomialRing0 = poly1.parent() |
|
1356 |
polynomialRing0 = poly1.parent()
|
|
1353 | 1357 |
resultantInElimVar = poly1.resultant(poly2,polynomialRing0(elimVar)) |
1354 | 1358 |
if resultantInElimVar.is_zero(): |
1355 | 1359 |
return () |
Formats disponibles : Unified diff