- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
inline public var length(getLength,null):Float;
inline public function getLength():Float {
return Math.abs(Vector3D.distance(this,new Vector3D()));
}
inline public var lengthSquared(getLengthSquared,null):Float;
inline public function getLengthSquared():Float {
return length * length;
}
Приходится смотреть через ?page=794
Ctrl+R не помогает.
inline
я что-то не догоняю?
- вычисляем квадратный корень для определения length,
- потом берем его модуль,
- потом это все возводим в квадрат (благо умножением)
Как-бы взятие корня и умножение вместе с модулем стоило бы выкинуть нафиг,
но зато, сцуко, соптимизировали - все функции inline
Тот же вызов функции, сам по себе, достаточно дорогой, чтобы инлайн имел смысл. Из смешных вещей, например, кустарная реализация целочисленного деления быстрее (раза в два, если не больше) чем то, что есть в виртуальной машине, но без инлайна не имело бы смысла, т.как вызов пользовательской функции был бы дороже.