Difference between revisions of "Square Root"
imported>DragoonWraith |
imported>DragoonWraith (commenting comments again) |
||
Line 6: | Line 6: | ||
The list of variables you will need declared in your [[Global Script]]: | The list of variables you will need declared in your [[Global Script]]: | ||
float input (the number whose root you need) | float input ;(the number whose root you need) | ||
float SqRt (the root, your answer) | float SqRt ;(the root, your answer) | ||
Your input variable need not necessarily be a float, it could be a short or long, but SqRt needs to be a float, as few square roots are integers. You are free to rename either, but remember to change the function code. | Your input variable need not necessarily be a float, it could be a short or long, but SqRt needs to be a float, as few square roots are integers. You are free to rename either, but remember to change the function code. | ||
Revision as of 12:38, 29 May 2006
Almost unbelievably, Oblivion does not include a square root function. Therefore one must use this code to get the square root of a number.
This uses Newton-Raphson approximation, and gives accuracy to two decimal places for numbers less than or equal to 100. Adding more steps to it increases accuracy very quickly.
This is a Stage Function, and as such must be created as a Quest Stage of a global script and called as a function. This assumes a Quest called Wiki with the variables declared. Therefore, you must modify this code to include the name of your Quest (assuming it is not Wiki, which it shouldn't be). Alternatively, however, it would not be difficult to incorporate this code into your script directly.
The list of variables you will need declared in your Global Script:
float input ;(the number whose root you need) float SqRt ;(the root, your answer)
Your input variable need not necessarily be a float, it could be a short or long, but SqRt needs to be a float, as few square roots are integers. You are free to rename either, but remember to change the function code.
;originally supplied by Galerion set Wiki.SqRt to input/2 set Wiki.SqRt to ( Wiki.SqRt + ( Wiki.input / Wiki.SqRt ) ) / 2 set Wiki.SqRt to ( Wiki.SqRt + ( Wiki.input / Wiki.SqRt ) ) / 2 set Wiki.SqRt to ( Wiki.SqRt + ( Wiki.input / Wiki.SqRt ) ) / 2 set Wiki.SqRt to ( Wiki.SqRt + ( Wiki.input / Wiki.SqRt ) ) / 2