[BACK]Return to floating_support_functions.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Supports

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Supports/floating_support_functions.adb, Revision 1.1

1.1     ! maekawa     1: package body Floating_Support_Functions is
        !             2:
        !             3:   function Maximal_Support ( l : List; v : Vector ) return double_float is
        !             4:
        !             5:     sp,max : double_float;
        !             6:     tmp : List;
        !             7:
        !             8:   begin
        !             9:     if not Is_Null(l)
        !            10:      then max := Head_Of(l).all*v;
        !            11:           tmp := Tail_Of(l);
        !            12:           while not Is_Null(tmp) loop
        !            13:             sp := Head_Of(tmp).all*v;
        !            14:             if sp > max
        !            15:              then max := sp;
        !            16:             end if;
        !            17:             tmp := Tail_Of(tmp);
        !            18:           end loop;
        !            19:           return max;
        !            20:      else return 0.0;
        !            21:     end if;
        !            22:   end Maximal_Support;
        !            23:
        !            24:   function Minimal_Support ( l : List; v : Vector ) return double_float is
        !            25:
        !            26:     sp,min : double_float;
        !            27:     tmp : List;
        !            28:
        !            29:   begin
        !            30:     if not Is_Null(l)
        !            31:      then min := Head_Of(l).all*v;
        !            32:           tmp := Tail_Of(l);
        !            33:           while not Is_Null(tmp) loop
        !            34:             sp := Head_Of(tmp).all*v;
        !            35:             if sp < min
        !            36:              then min := sp;
        !            37:             end if;
        !            38:             tmp := Tail_Of(tmp);
        !            39:           end loop;
        !            40:           return min;
        !            41:      else return 0.0;
        !            42:     end if;
        !            43:   end Minimal_Support;
        !            44:
        !            45:   function Face ( l : List; v : Vector; m,tol : double_float ) return List is
        !            46:
        !            47:     res,tmp,res_last : List;
        !            48:     d : Vector(v'range);
        !            49:
        !            50:   begin
        !            51:     tmp := l;
        !            52:     while not Is_Null(tmp) loop
        !            53:       d := Head_Of(tmp).all;
        !            54:       if abs(d*v - m) < tol
        !            55:        then Append(res,res_last,d);
        !            56:       end if;
        !            57:       tmp := Tail_Of(tmp);
        !            58:     end loop;
        !            59:     return res;
        !            60:   end Face;
        !            61:
        !            62: end Floating_Support_Functions;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>