38
38
39
39
bool bc_sqrt (bc_num * num , size_t scale )
40
40
{
41
- const bc_num local_num = * num ;
42
41
/* Initial checks. */
43
- if (bc_is_neg (local_num )) {
42
+ if (bc_is_neg (* num )) {
44
43
/* Cannot take the square root of a negative number */
45
44
return false;
46
45
}
47
46
/* Square root of 0 is 0 */
48
- if (bc_is_zero (local_num )) {
47
+ if (bc_is_zero (* num )) {
49
48
bc_free_num (num );
50
49
* num = bc_copy_num (BCG (_zero_ ));
51
50
return true;
52
51
}
53
52
54
- bcmath_compare_result num_cmp_one = bc_compare (local_num , BCG (_one_ ), local_num -> n_scale );
53
+ bcmath_compare_result num_cmp_one = bc_compare (* num , BCG (_one_ ), ( * num ) -> n_scale );
55
54
/* Square root of 1 is 1 */
56
55
if (num_cmp_one == BCMATH_EQUAL ) {
57
56
bc_free_num (num );
@@ -62,7 +61,7 @@ bool bc_sqrt(bc_num *num, size_t scale)
62
61
/* Initialize the variables. */
63
62
size_t cscale ;
64
63
bc_num guess , guess1 , point5 , diff ;
65
- size_t rscale = MAX (scale , local_num -> n_scale );
64
+ size_t rscale = MAX (scale , ( * num ) -> n_scale );
66
65
67
66
bc_init_num (& guess1 );
68
67
bc_init_num (& diff );
@@ -74,13 +73,13 @@ bool bc_sqrt(bc_num *num, size_t scale)
74
73
if (num_cmp_one == BCMATH_RIGHT_GREATER ) {
75
74
/* The number is between 0 and 1. Guess should start at 1. */
76
75
guess = bc_copy_num (BCG (_one_ ));
77
- cscale = local_num -> n_scale ;
76
+ cscale = ( * num ) -> n_scale ;
78
77
} else {
79
78
/* The number is greater than 1. Guess should start at 10^(exp/2). */
80
79
bc_init_num (& guess );
81
80
bc_int2num (& guess , 10 );
82
81
83
- bc_int2num (& guess1 , local_num -> n_len );
82
+ bc_int2num (& guess1 , ( * num ) -> n_len );
84
83
bc_multiply_ex (guess1 , point5 , & guess1 , 0 );
85
84
guess1 -> n_scale = 0 ;
86
85
bc_raise_bc_exponent (guess , guess1 , & guess , 0 );
0 commit comments