- 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;
}
guest 21.04.2012 14:45 # +2
7ion 21.04.2012 14:54 # 0
Приходится смотреть через ?page=794
Ctrl+R не помогает.
bormand 21.04.2012 14:54 # 0
makc3d 21.04.2012 15:07 # 0
wvxvw 21.04.2012 16:20 # 0
makc3d 21.04.2012 16:34 # 0
wvxvw 21.04.2012 16:48 # +1
makc3d 21.04.2012 16:55 # 0
wvxvw 21.04.2012 17:12 # 0
TarasB 21.04.2012 17:28 # 0
inline
я что-то не догоняю?
makc3d 21.04.2012 17:29 # 0
TarasB 21.04.2012 17:53 # 0
makc3d 21.04.2012 18:18 # 0
guest 21.04.2012 20:53 # 0
guest 21.04.2012 20:56 # −1
- вычисляем квадратный корень для определения length,
- потом берем его модуль,
- потом это все возводим в квадрат (благо умножением)
Как-бы взятие корня и умножение вместе с модулем стоило бы выкинуть нафиг,
но зато, сцуко, соптимизировали - все функции inline
Lure Of Chaos 22.04.2012 10:20 # 0
bormand 22.04.2012 11:17 # 0
wvxvw 21.04.2012 22:16 # 0
Тот же вызов функции, сам по себе, достаточно дорогой, чтобы инлайн имел смысл. Из смешных вещей, например, кустарная реализация целочисленного деления быстрее (раза в два, если не больше) чем то, что есть в виртуальной машине, но без инлайна не имело бы смысла, т.как вызов пользовательской функции был бы дороже.