После долгих поисков, не нашел описания как работать с комплексными числами, и поэтому спрашиваю вас. Меня интересует чисто математическая сторона данного вопроса. Как программно получать значения выражений типа : sqrt(-10) log(-10) arcsin(-10) Меня интересует какие модули под асм есть для работы с комплексными числами? Под делфу прошу не предлагать.
Так что под комплексное число мне память зарезервировать как под два вещественных? Не слишком ли большая растрата памяти, особенно когда массивы?
Даже не знаю что и сказать... Предложите свой вариант хранения двух чисел в памяти, но только чур чтоб места занимали как одно.
спорный вопрос... я бы (если С++) создал класс для работы с комплексными числами... работал с ними как с данными типа double... ...хотя многовато для них памяти получается(double)...
Код (Text): #include <complex> #include <iostream> #include <math.h> using namespace std; template <class _T> complex<_T> casin(complex<_T> x) { complex<_T> i(0,1); complex<_T> mi1(-1,0); //-1 complex<_T> pl1(1,0); //1 return mi1*i*log(i*x+sqrt(pl1-x*x)); } template <class _T> complex<_T> cacos(complex<_T> x) { complex<_T> i(0,1); complex<_T> mi1(-1,0); //-1 complex<_T> pl1(1,0); //1 return mi1*i*log(x+sqrt(x*x-pl1)); } int main () { complex<double> ctemp(-10,0.0); cout<< "complex sqrt "<< sqrt(ctemp)<<endl; cout<< "complex log "<< log(ctemp)<<endl; cout<< "complex asin "<< casin(ctemp)<<endl; cout<< "complex acos "<< cacos(ctemp)<<endl; }
http://alglib.sources.ru/complexops/ http://www.exponenta.ru/educat/class/courses/tfkp/theme1/theme.asp