Напрмер.
Реализация чередования значений a и b, хранящийхся в перменной x x=( a + b ) - x Перед первой обработкой в x должно хранится одно из значений (a или b ) Код:
a=6 |
Реализация прохода переменной x всех значений из [0;b-1]
x = ( x + 1 ) Mod b Код:
b=5 |
Выбор максимума из a,b в одну ф-лу
x = ( Abs( a-b ) + ( a+b ) ) *.5 Код:
a=4 |
хм
ето ты сам придумал ? или где взял ? |
>Выбор максимума из a,b в одну ф-лу
>x = ( Abs( a-b ) + ( a+b ) ) *.5 If a>b x=a else x=b endif - это будет гораздо быстрее, чем куча умножений/сложений(раз в 5-6 примерно), вот тест(если не верите): Код:
a=5 |
прикол у меня первый способ быстрее :)
у pentiumов alu рулит полюбе - вот за что их люблю , и неглючат никогда |
Не отрицаю - все выше изложенные формулы работают медленее, конструкций условного перехода, однако, в борьбе за скорость приходится отказваться от удобочитаемости ( избавляться от функциий, юзать goto и т.п.) - так что выбор за вами. Я лишь посчитал эти формулы интересными.
Практически все где-то видел : в институте, интернете, чужом коде. |
Ф-лу минимума можно получить или эвристически или объединив ф-лы для max и чередования 2ух значений.
x = ( ( a+b ) - Abs( a-b ) ) *.5 Код:
a=10 |
Как определить, является ли число степенью двойки?
Код:
bool PowOfTwo (int num) |
БЫСТРЫЙЙЙЙ !!! :)) квадратный корень с минимальной точностью
Код:
float fast_sqrt(float f) |
2jimon :
продолжая борьбу за скорость: добавь ещё inline для функции |
Да, хорошая функция, но огорчает, что выдает неточный результат с простыми корнями. Например, fast_sqrt(625)==25.76, а fast_sqrt(144)==12.5.
|
ето не я делал... щитается дефак-то самая быстрая функция примерного извлечение квадратного корня
|
Цитата:
|
ну всеже она может хоть чучуть сказать какой корень :)
|
Часовой пояс GMT +4, время: 14:50. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot