#include <ball_infinities.hpp>
Definition at line 41 of file ball_infinities.hpp.
typedef implementation<ball_additive,BV> Fallback |
Definition at line 42 of file ball_infinities.hpp.
typedef implementation<ball_rounding,BV> Rnd |
Definition at line 43 of file ball_infinities.hpp.
Definition at line 70 of file ball_infinities.hpp.
References mmx::add(), Ball, and mmx::is_finite().
00070 { 00071 if (is_finite (z1) && is_finite (z2)) Fallback::add (d, z1, z2); 00072 else add (d, z1, Ball (z2)); 00073 }
Definition at line 64 of file ball_infinities.hpp.
References mmx::add(), Ball, and mmx::is_finite().
00064 { 00065 if (is_finite (z1) && is_finite (z2)) Fallback::add (d, z1, z2); 00066 else add (d, Ball (z1), z2); 00067 }
static void add | ( | ball< C, R, V > & | d, | |
const ball< C, R, V > & | z1, | |||
const ball< C, R, V > & | z2 | |||
) | [inline, static] |
Definition at line 52 of file ball_infinities.hpp.
References mmx::add(), Ball, mmx::C, mmx::center(), Fuzz, mmx::is_finite(), mmx::is_fuzz(), mmx::is_infinite(), mmx::is_nan(), Nan, and Projective.
00052 { 00053 if (is_finite (z1) && is_finite (z2)) Fallback::add (d, z1, z2); 00054 else if (is_nan (z1) || is_nan (z2)) d= Nan (Ball); 00055 else if (is_fuzz (z1) || is_fuzz (z2)) d= Fuzz (Ball); 00056 else if (is_infinite (z1) && is_infinite (z2)) { 00057 if (Projective (C) || center (z1) != center (z2)) d= Fuzz (Ball); 00058 else d= z1; 00059 } 00060 else d= (is_infinite (z1)? z1: z2); 00061 }
Definition at line 46 of file ball_infinities.hpp.
References mmx::is_finite(), mmx::is_infinite(), and mmx::neg().
00046 { 00047 if (is_finite (z) || is_infinite (z)) Fallback::neg (d, z); 00048 else d= z; 00049 }
Definition at line 94 of file ball_infinities.hpp.
References Ball, mmx::is_finite(), and mmx::sub().
00094 { 00095 if (is_finite (z1) && is_finite (z2)) Fallback::sub (d, z1, z2); 00096 else sub (d, z1, Ball (z2)); 00097 }
Definition at line 88 of file ball_infinities.hpp.
References Ball, mmx::is_finite(), and mmx::sub().
00088 { 00089 if (is_finite (z1) && is_finite (z2)) Fallback::sub (d, z1, z2); 00090 else sub (d, Ball (z1), z2); 00091 }
static void sub | ( | ball< C, R, V > & | d, | |
const ball< C, R, V > & | z1, | |||
const ball< C, R, V > & | z2 | |||
) | [inline, static] |
Definition at line 76 of file ball_infinities.hpp.
References Ball, mmx::C, mmx::center(), Fuzz, mmx::is_finite(), mmx::is_fuzz(), mmx::is_infinite(), mmx::is_nan(), Nan, Projective, and mmx::sub().
00076 { 00077 if (is_finite (z1) && is_finite (z2)) Fallback::sub (d, z1, z2); 00078 else if (is_nan (z1) || is_nan (z2)) d= Nan (Ball); 00079 else if (is_fuzz (z1) || is_fuzz (z2)) d= Fuzz (Ball); 00080 else if (is_infinite (z1) && is_infinite (z2)) { 00081 if (Projective (C) || center (z1) == center (z2)) d= Fuzz (Ball); 00082 else d= z1; 00083 } 00084 else d= (is_infinite (z1)? z1: -z2); 00085 }