Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

$$L = \left\lceil \frac{\sqrt{v-4 \times N}-1}{4} \right\rceil$$

This is a line in my program but I cannot get ceil() to work in GMP, so I'd like to approach this mathematically and just rewrite it so it doesn't need ceil().

share|improve this question
    
What are $v$ and $N$? Fractions, integers? –  Antonio Vargas Nov 28 '12 at 0:14
    
@AntonioVargas Integers –  KaliMa Nov 28 '12 at 0:36
    
Does floor work for you? –  hardmath Nov 28 '12 at 0:58
    
@hardmath Yes, floor is fine -- ceil is the only problem –  KaliMa Nov 28 '12 at 1:13
2  
ceil(x) = - floor(-x). –  coffeemath Nov 28 '12 at 2:42
show 1 more comment

1 Answer

up vote 2 down vote accepted

You can use the floor with the difference of the desired quantity and a sufficiently large integer. In particular here we know:

$$ v > \frac{\sqrt{v-4 \times N}-1}{4} $$

Therefore:

$$ L = \left\lceil \frac{\sqrt{v-4 \times N}-1}{4} \right\rceil = v - \left\lfloor v - \frac{\sqrt{v-4 \times N}-1}{4} \right\rfloor $$

'Nuff said? There are other ways to do it, but you have $v$ on hand and this is probably the fewest additional operations (and avoids any case logic). Certainly worth a comment in the code so you don't have a long moment of confusion months down the road...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.