Index: pobyso.py
===================================================================
--- pobyso.py	(revision 281)
+++ pobyso.py	(revision 282)
@@ -99,6 +99,31 @@
 
 def pobyso_autoprint_so_so(arg):
     sollya_lib_autoprint(arg,None)
+
+def pobyso_bounds_to_interval_sa_sa(lowerBound, upperBound):
+    """
+    Convert a pair of bounds into an interval (an element of 
+    a RealIntervalField).
+    """
+    # Minimal (not bullet-proof) check on bounds.
+    if lowerBound > upperBound:
+        return None
+    # Try to get the maximum precision among the bounds.
+    try: 
+        preclb = parent(lowerBound).precision()
+        precub = parent(upperBound).precision()
+        prec = max(preclb, precub)
+    except AttributeError:
+        prec = 53
+    # Create the RealIntervalField and the interval (if possible).
+    theRIF = RealIntervalField(prec)
+    try:
+        interval = theRIF(lowerBound, upperBound)
+    except TypeError:
+        return None
+    else:
+        return interval
+# End pobyso_bounds_to_interval_sa_sa
     
 def pobyso_bounds_to_range_sa_so(rnLowerBoundSa, rnUpperBoundSa, \
                                  precisionSa=None):
@@ -1229,10 +1254,57 @@
     """
     return sollya_lib_inf(intervalSo)
 # End pobyso_inf_so_so.
+#    
+def pobyso_infnorm_sa_sa(funcSa, intervalSa):
+    """
+    An infnorm call with Sage arguments.
+    We only take into account the 2 first arguments (the function and
+    the interval (a range). Managing the other arguments (the file for
+    the proof and the exclusion intervals list) will be performed later
+    Changes will be needed in sollya_lib.py file too.
+    """
+    # Check that funcSa is a function.
+    if not \
+     sage.symbolic.callable.is_CallableSymbolicExpressionRing(parent(funcSa)):
+        return None
+    # Check that intervalSa is an interval.
+    try:
+        intervalSa.upper()
+    except AttributeError:
+        return None
+    # Convert the Sage function into a Sollya function.
+    funcAsStringSa = funcSa._assume_str().replace('_SAGE_VAR_', '')
+    funcSo = pobyso_parse_string_sa_so(funcAsStringSa)
+    if not pobyso_obj_is_function_so_sa(funcSo):
+        sollya_lib_clear_obj(funcSo)
+        return None
+    # Convert the Sage interval into a Sollya range.
+    rangeSo = pobyso_interval_to_range_sa_so(intervalSa)
+    retValSo = sollya_lib_infnorm(funcSo, rangeSo, None)
+    sollya_lib_clear_obj(funcSo)
+    sollya_lib_clear_obj(rangeSo)
+    if pobyso_is_error_so_sa(retValSo):
+        sollya_lib_clear_obj(retValSo)
+        return None
+    retValSa = pobyso_range_to_interval_so_sa(retValSo)
+    sollya_lib_clear_obj(retValSo)
+    return retValSa
+# End pobyso_infnorm_so_so.
+#   
+def pobyso_infnorm_so_so(funcSo, rangeSo):
+    """
+    Very thin wrapper around sollya_lib_infnorm().
+    We only take into account the 2 first arguments (the function and
+    the interval (a range). Managing the other arguments (the file for
+    the proof and the exclusion intervals list) will be performed later
+    Changes will be needed in sollya_lib.py file too.
     
-def pobyso_infnorm_so_so(func, interval, file = None, intervalList = None):
-    print "Do not use this function. User pobyso_supnorm_so_so instead."
-    return None
+    As per Sollya manual, this function should not be used anymore and
+    supnorm should be called instead. Nevertheless, supnorm breaks 
+    sometimes whereas infnorm still returns a satisfactory answer.
+    """
+    return sollya_lib_infnorm(funcSo, rangeSo, None)
+# End pobyso_infnorm_so_so.
 
 def pobyso_interval_to_range_sa_so(intervalSa, precisionSa=None):
     if precisionSa is None:
@@ -2023,36 +2095,7 @@
 def pobyso_set_prec_so_so(newPrecSo):
     sollya_lib_set_prec(newPrecSo)
 # End pobyso_set_prec_so_so.
-
-def pobyso_inf_so_so(rangeSo):
-    """
-    Very thin wrapper around sollya_lib_inf().
-    """
-    return sollya_lib_inf(rangeSo)
-# End pobyso_inf_so_so.
 #   
-def pobyso_infnorm_sa_sa(funcSa, interevalSa):
-    """
-    Very thin wrapper around sollya_lib_infnorm().
-    We only take into account the 2 first arguments (the function and
-    the interval (a range). Managing the other arguments (the file for
-    the proof and the exclusion intervals list) will be performed later
-    Changes will be needed in sollya_lib.py file too.
-    """
-    return sollya_lib_infnorm(funcSo, rangeSo, None)
-# End pobyso_infnorm_so_so.
-#   
-def pobyso_infnorm_so_so(funcSo, rangeSo):
-    """
-    Very thin wrapper around sollya_lib_infnorm().
-    We only take into account the 2 first arguments (the function and
-    the interval (a range). Managing the other arguments (the file for
-    the proof and the exclusion intervals list) will be performed later
-    Changes will be needed in sollya_lib.py file too.
-    """
-    return sollya_lib_infnorm(funcSo, rangeSo, None)
-# End pobyso_infnorm_so_so.
-#   
 def pobyso_supnorm_sa_sa(poly):
     """
     Computes the supremum norm from Sage input arguments and returns a
