00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "ASubtraction.h"
00010
00011 double ASubtraction::h(double f, double g)
00012 {
00013 if ((f <= m_r1) && (g <= m_r2))
00014 return (((f - m_r1) * (f - m_r1)) / (m_r1 * m_r1)) +
00015 (((g - m_r2) * (g - m_r2)) / (m_r2 * m_r2)) - 1;
00016 else
00017 return 0.0;
00018 }
00019
00020 Intervald ASubtraction::h(Intervald f, Intervald g)
00021 {
00022 if ((f <= m_r1) && (g <= m_r2))
00023 {
00024 Intervald r1(m_r1);
00025 Intervald r2(m_r2);
00026 return ((f - r1).squared() / r1.squared()) +
00027 ((g - r2).squared() / r2.squared()) -
00028 Intervald(1.0);
00029 }
00030 else
00031 return Intervald(0.0);
00032 }
00033
00034 double ASubtraction::hf(double f, double g)
00035 {
00036 if ((f <= m_r1) && (g <= m_r2))
00037 return ((2.0 * f - 2.0 * m_r1) / (m_r1 * m_r1));
00038 else
00039 return 0.0;
00040 }
00041
00042 Intervald ASubtraction::hf(Intervald f, Intervald g)
00043 {
00044 if((f <= m_r1) && (g <= m_r2))
00045 {
00046 Intervald r1(m_r1);
00047 Intervald two(2.0);
00048 return ((two * f) - (two * r1)) / r1.squared();
00049 }
00050 else
00051 return Intervald(0.0);
00052 }
00053
00054 double ASubtraction::hg(double f, double g)
00055 {
00056 if ((f <= m_r1) && (g <= m_r2))
00057 return ((2.0 * g - 2.0 * m_r2) / (m_r2 * m_r2));
00058 else
00059 return 0.0;
00060 }
00061
00062 Intervald ASubtraction::hg(Intervald f, Intervald g)
00063 {
00064 if ((f <= m_r1) && (g <= m_r2))
00065 {
00066 Intervald r2(m_r2);
00067 Intervald two(2.0);
00068 return ((two * g) - (two * r2)) / r2.squared();
00069 }
00070 else
00071 return Intervald(0.0);
00072 }
00073
00074 double ASubtraction::hff(double f, double g)
00075 {
00076 if ((f <= m_r1) && (g <= m_r2))
00077 return (2.0 / (m_r1 * m_r1));
00078 else
00079 return 0.0;
00080 }
00081
00082 Intervald ASubtraction::hff(Intervald f, Intervald g)
00083 {
00084 if ((f <= m_r1) && (g <= m_r2))
00085 {
00086 Intervald r1(m_r1);
00087 return Intervald(2.0) / r1.squared();
00088 }
00089 else
00090 return Intervald(0.0);
00091 }
00092
00093 double ASubtraction::hgg(double f, double g)
00094 {
00095 if ((f <= m_r1) && (g <= m_r2))
00096 return (2.0 / (m_r2 * m_r2));
00097 else
00098 return 0.0;
00099 }
00100
00101 Intervald ASubtraction::hgg(Intervald f, Intervald g)
00102 {
00103 if ((f <= m_r1) && (g <= m_r2))
00104 {
00105 Intervald r2(m_r2);
00106 return Intervald(2.0) / r2.squared();
00107 }
00108 else
00109 return 0.0;
00110 }
00111
00112 double ASubtraction::hfg(double f, double g)
00113 {
00114 return 0.0;
00115 }
00116
00117 Intervald ASubtraction::hfg(Intervald f, Intervald g)
00118 {
00119 return Intervald(0.0);
00120 }
00121