Lines Matching +full:src +full:- +full:2

3   fp_log.c: floating-point math routines for the Linux-m68k
6 Copyright (c) 1998-1999 David Huggins-Daines / Roman Zippel.
26 struct fp_ext *fp_fsqrt(struct fp_ext *dest, struct fp_ext *src) in fp_fsqrt() argument
33 fp_monadic_check(dest, src); in fp_fsqrt()
38 if (dest->sign) { in fp_fsqrt()
46 * sqrt(m) * 2^(p) , if e = 2*p in fp_fsqrt()
47 * sqrt(m*2^e) = in fp_fsqrt()
48 * sqrt(2*m) * 2^(p) , if e = 2*p + 1 in fp_fsqrt()
51 * use the m or 2*m. in fp_fsqrt()
54 * the integer part is assumed to be one, we place a 1 or 2 into in fp_fsqrt()
57 exp = dest->exp; in fp_fsqrt()
58 dest->exp = 0x3FFF; in fp_fsqrt()
60 dest->exp++; in fp_fsqrt()
65 * sqrt(x) = sqrt(a) + 1/(2*sqrt(a))*(x-a) + R in fp_fsqrt()
67 * sqrt(x) = 1 + 1/2*(x-1) in fp_fsqrt()
68 * = 1/2*(1+x) in fp_fsqrt()
72 dest->exp--; /* * 1/2 */ in fp_fsqrt()
76 * f(x) := x^2 - r in fp_fsqrt()
80 * x' := x - f(x)/f'(x) in fp_fsqrt()
81 * = x - (x^2 -r)/(2*x) in fp_fsqrt()
82 * = x - (x - r/x)/2 in fp_fsqrt()
83 * = (2*x - x + r/x)/2 in fp_fsqrt()
84 * = (x + r/x)/2 in fp_fsqrt()
91 dest->exp--; in fp_fsqrt()
94 dest->exp += (exp - 0x3FFF) / 2; in fp_fsqrt()
99 struct fp_ext *fp_fetoxm1(struct fp_ext *dest, struct fp_ext *src) in fp_fetoxm1() argument
103 fp_monadic_check(dest, src); in fp_fetoxm1()
108 struct fp_ext *fp_fetox(struct fp_ext *dest, struct fp_ext *src) in fp_fetox() argument
112 fp_monadic_check(dest, src); in fp_fetox()
117 struct fp_ext *fp_ftwotox(struct fp_ext *dest, struct fp_ext *src) in fp_ftwotox() argument
121 fp_monadic_check(dest, src); in fp_ftwotox()
126 struct fp_ext *fp_ftentox(struct fp_ext *dest, struct fp_ext *src) in fp_ftentox() argument
130 fp_monadic_check(dest, src); in fp_ftentox()
135 struct fp_ext *fp_flogn(struct fp_ext *dest, struct fp_ext *src) in fp_flogn() argument
139 fp_monadic_check(dest, src); in fp_flogn()
144 struct fp_ext *fp_flognp1(struct fp_ext *dest, struct fp_ext *src) in fp_flognp1() argument
148 fp_monadic_check(dest, src); in fp_flognp1()
153 struct fp_ext *fp_flog10(struct fp_ext *dest, struct fp_ext *src) in fp_flog10() argument
157 fp_monadic_check(dest, src); in fp_flog10()
162 struct fp_ext *fp_flog2(struct fp_ext *dest, struct fp_ext *src) in fp_flog2() argument
166 fp_monadic_check(dest, src); in fp_flog2()
171 struct fp_ext *fp_fgetexp(struct fp_ext *dest, struct fp_ext *src) in fp_fgetexp() argument
175 fp_monadic_check(dest, src); in fp_fgetexp()
184 fp_conv_long2ext(dest, (int)dest->exp - 0x3FFF); in fp_fgetexp()
191 struct fp_ext *fp_fgetman(struct fp_ext *dest, struct fp_ext *src) in fp_fgetman() argument
195 fp_monadic_check(dest, src); in fp_fgetman()
203 dest->exp = 0x3FFF; in fp_fgetman()