А есть же какие-то методы описанные формулами (схемы)?
Но как по-мне, лучше уже готовый передрать и не париться. Чтобы не изобретать велосипед. А уж его можно будет и оптимизировать попробовать.
то что никто не хочет изобретать велосипеды - это большая проблема, одна из главных причин глюков и багов