3838
3939bool bc_sqrt (bc_num * num , size_t scale )
4040{
41- const bc_num local_num = * num ;
4241 /* Initial checks. */
43- if (bc_is_neg (local_num )) {
42+ if (bc_is_neg (* num )) {
4443 /* Cannot take the square root of a negative number */
4544 return false;
4645 }
4746 /* Square root of 0 is 0 */
48- if (bc_is_zero (local_num )) {
47+ if (bc_is_zero (* num )) {
4948 bc_free_num (num );
5049 * num = bc_copy_num (BCG (_zero_ ));
5150 return true;
5251 }
5352
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 );
5554 /* Square root of 1 is 1 */
5655 if (num_cmp_one == BCMATH_EQUAL ) {
5756 bc_free_num (num );
@@ -62,7 +61,7 @@ bool bc_sqrt(bc_num *num, size_t scale)
6261 /* Initialize the variables. */
6362 size_t cscale ;
6463 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 );
6665
6766 bc_init_num (& guess1 );
6867 bc_init_num (& diff );
@@ -74,13 +73,13 @@ bool bc_sqrt(bc_num *num, size_t scale)
7473 if (num_cmp_one == BCMATH_RIGHT_GREATER ) {
7574 /* The number is between 0 and 1. Guess should start at 1. */
7675 guess = bc_copy_num (BCG (_one_ ));
77- cscale = local_num -> n_scale ;
76+ cscale = ( * num ) -> n_scale ;
7877 } else {
7978 /* The number is greater than 1. Guess should start at 10^(exp/2). */
8079 bc_init_num (& guess );
8180 bc_int2num (& guess , 10 );
8281
83- bc_int2num (& guess1 , local_num -> n_len );
82+ bc_int2num (& guess1 , ( * num ) -> n_len );
8483 bc_multiply_ex (guess1 , point5 , & guess1 , 0 );
8584 guess1 -> n_scale = 0 ;
8685 bc_raise_bc_exponent (guess , guess1 , & guess , 0 );
0 commit comments