implementation< ball_multiplicative, W, ball_rounded > Struct Template Reference

#include <ball_rounded.hpp>

List of all members.

Public Types

Static Public Member Functions


Detailed Description

template<typename W>
struct mmx::implementation< ball_multiplicative, W, ball_rounded >

Definition at line 191 of file ball_rounded.hpp.


Member Typedef Documentation

typedef implementation<ball_rounding,W> Rnd

Definition at line 192 of file ball_rounded.hpp.


Member Function Documentation

static void div ( ball< C, R, V > &  d,
const C z1,
const ball< C, R, V > &  z2 
) [inline, static]

Definition at line 257 of file ball_rounded.hpp.

References invert_op::op().

00257                                            {
00258   d= z1 * invert_op::op (z2);
00259 }

static void div ( ball< C, R, V > &  d,
const ball< C, R, V > &  z1,
const C z2 
) [inline, static]

Definition at line 252 of file ball_rounded.hpp.

References invert_op::op().

00252                                            {
00253   d= z1 * invert_op::op (z2);
00254 }

static void div ( ball< C, R, V > &  d,
const ball< C, R, V > &  z1,
const ball< C, R, V > &  z2 
) [inline, static]

Definition at line 247 of file ball_rounded.hpp.

References invert_op::op().

00247                                               {
00248   d= z1 * invert_op::op (z2);
00249 }

static void invert ( ball< C, R, V > &  d,
const C z 
) [inline, static]

Definition at line 241 of file ball_rounded.hpp.

References mmx::center(), mmx::multiplicative_error(), invert_op::op(), and mmx::radius().

00241                              {
00242   center (d)= invert_op::op (z);
00243   radius (d)= multiplicative_error (center (d));
00244 }

static void invert ( ball< C, R, V > &  d,
const ball< C, R, V > &  z 
) [inline, static]

Definition at line 232 of file ball_rounded.hpp.

References mmx::center(), mmx::div(), Down, invert_op::op(), R, mmx::radius(), Round_down, Round_up, and Up.

00232                                 {
00233   typedef Round_up(R) Up;
00234   typedef Round_down(R) Down;
00235   center (d)= invert_op::op (center (z));
00236   radius (d)= Up::div (radius (z), Down::square (Rnd::abs_down (z)));
00237   Rnd::add_multiplicative_error (d);
00238 }

static void mul ( ball< C, R, V > &  d,
const ball< C, R, V > &  z1,
const C z2 
) [inline, static]

Definition at line 214 of file ball_rounded.hpp.

References mmx::center(), mmx::mul(), R, mmx::radius(), Round_up, and Up.

00214                                            {
00215   typedef Round_up(R) Up;
00216   R a2= Up::template abs_as<R> (z2);
00217   center (d)= center (z1) * z2;
00218   radius (d)= Up::mul (radius (z1), a2);
00219   Rnd::add_multiplicative_error (d);
00220 }

static void mul ( ball< C, R, V > &  d,
const C z1,
const ball< C, R, V > &  z2 
) [inline, static]

Definition at line 205 of file ball_rounded.hpp.

References mmx::center(), mmx::mul(), R, mmx::radius(), Round_up, and Up.

00205                                            {
00206   typedef Round_up(R) Up;
00207   R a1= Up::template abs_as<R> (z1);
00208   center (d)= z1 * center (z2);
00209   radius (d)= Up::mul (a1, radius (z2));
00210   Rnd::add_multiplicative_error (d);
00211 }

static void mul ( ball< C, R, V > &  d,
const ball< C, R, V > &  z1,
const ball< C, R, V > &  z2 
) [inline, static]

Definition at line 195 of file ball_rounded.hpp.

References mmx::abs_up(), mmx::add(), mmx::center(), R, mmx::radius(), Round_up, and Up.

00195                                               {
00196   typedef Round_up(R) Up;
00197   R a1= Rnd::abs_up (z1);
00198   R a2= Up::template abs_as<R> (center (z2));
00199   center (d)= center (z1) * center (z2);
00200   radius (d)= Up::add (Up::mul (a1, radius (z2)), Up::mul (radius (z1), a2));
00201   Rnd::add_multiplicative_error (d);
00202 }

static void square ( ball< C, R, V > &  d,
const ball< C, R, V > &  z 
) [inline, static]

Definition at line 223 of file ball_rounded.hpp.

References mmx::center(), mmx::mul(), square_op::op(), R, mmx::radius(), Round_up, and Up.

00223                                 {
00224   typedef Round_up(R) Up;
00225   R a= Up::template abs_as<R> (center (z));
00226   center (d)= square_op::op (center (z));
00227   radius (d)= Up::mul (Up::add (a + a, radius (z)), radius (z));
00228   Rnd::add_multiplicative_error (d);
00229 }


The documentation for this struct was generated from the following file:

Generated on 6 Dec 2012 for numerix by  doxygen 1.6.1