как в Си подключить complex.h

turil62

Скажите, как в Си подключить complex.h, никак не могу понять

yurimedvedev

Что значит подключить?
#include<complex.h> пробовал?

turil62

Да, нет, я не знаю, как использовать тамошние функции, особенно передать в одном float комплексное число(или я что-то не догоняю).

yurimedvedev

Ответ прост (по-моему)
#include<complex.h>
void main{
complex z(0,1 a(0,0);
a = sin(z);
}

Technoman

проще самому написать комлексную арифметику, имхо

yurimedvedev

Не надо ее писать. Все вышенаписанное оттестено и работает.
работает даже такая фраза:
complex a(1, 0.5 b(1, 1 c;
c = a+b;
и выдает до правдоподобия правильный ответ.

turil62

Это же Си++ !
А я просил в Си

yurimedvedev

Fatal: Error directive: must use C++ for the type complex.

turil62

У меня работает например


#include <complex.h>
printf("%Lf", (long double)creal(1.0;
Результ 1.0, но КАК он это число на два разбивает?!

korman77

А с чего Вы взяли, что он разбивает?
Тип complex реализован с помощью внутренних функций компилятора (gcc в частности). Хранится, естественно два числа. В данном примере 1.0 приводится к типу complex при препроцессировании, и это происходит в компиляторе.

ramses1971

Да, примерно так. Компилятор знает типы float complex и double complex.
creal - макрос.
Оставить комментарий
Имя или ник:
Комментарий: