Эта функция повышает один double
до степени другого double
.
. Это можно увидеть по вызову pow
внизу:
y = pow(u0, u1);
Это также обрабатывать различные особые случаи, аккуратно обрабатывать нечисловые и бесконечные входные данные и эффективно обрабатывать специальные значения.
powd
означает, что это степенная функция, использующая двойные числа. Из документации _snf
означает, что он может обрабатывать не конечные числа. Префикс rt_
происходит из переменной конфигурации Модификатор имени переменной MAT-файла . Я предполагаю, что это означает «время выполнения», но это не основано.
В коде d0
и d1
являются абсолютными (отрицательные становятся положительными) версии входных данных u0
и u1
. Результат в y
.
Проходя по коду:
- Если основание или показатель степени равны NAN
- Если показатель степени бесконечен
- Если абсолютное основание равно 1,0
- Если абсолютное значение основание больше 1,0
- Если показатель положителен (бесконечность)
- Иначе показатель отрицателен (бесконечность)
- В противном случае абсолютное основание меньше 1,0
- Если показатель степени положителен (бесконечность)
- Иначе показатель отрицателен (бесконечность)
- Если абсолютный показатель равен 0,0
- Если абсолютный показатель равен 1,0
- Если показатель положительный (1,0 )
- Иначе показатель отрицателен (1,0)
- Если показатель степени равно 2,0
- Возвращает само базовое время
- Если показатель равен 0,5, а основание неотрицательно
- Возвращает квадрат root из основание
- Если основание отрицательно, а показатель степени не является целым числом
- В противном случае случай не особенный
- Возвращает результат
pow(u0, u1)