Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Complex / math

.h
Скачиваний:
7
Добавлен:
21.04.2019
Размер:
1.19 Кб
Скачать
#include <stdio.h>

struct complex
{
float r;
float i;
};
//Out in stdout complex number
void com_out(struct complex in)
{
char c;
if(in.i>0)
c='+';
else
c=0;
printf("%.3f %c%.3fi\n", in.r, c, in.i);
}
//Mult 2 complex numbers
struct complex mul(struct complex a,struct complex b)
{
struct complex ans;
ans.r=a.r*b.r;
ans.i=a.r*b.i;
ans.i+=a.i*b.r;
ans.r+=-(a.i*b.i);
return ans;
}
//Mult complex and ratio numbers
struct complex muld(struct complex a,short b)
{
a.r*=b;
a.i*=b;
return a;
}
//Div 2 complex numbers
struct complex div(struct complex a,struct complex b)
{
struct complex ans;
ans.r=((a.r*b.r)+(a.i*b.i))/((b.r*b.r)+(b.i*b.i));
ans.i=((a.i*b.r)-(a.r*b.i))/((b.r*b.r)+(b.i*b.i));
return ans;
}
//Sub 2 complex number
struct complex sub(struct complex a,struct complex b)
{
a.r-=b.r;
a.i-=b.i;
return a;
}
//Add 2 complex number
struct complex add(struct complex a,struct complex b)
{
a.r+=b.r;
a.i+=b.i;
return a;
}
//Find d,d2,d3
void mat2(struct complex in[],short V, struct complex *ans)
{
struct complex d[3];
d[0]=sub(mul(in[0],in[3]),mul(in[2],in[1]));
d[1]=sub(muld(in[3],V),muld(in[1],V));
d[2]=sub(muld(in[0],V),muld(in[2],V));
*ans=d[0];
*(ans+1)=d[1];
*(ans+2)=d[2];
}
Соседние файлы в папке Complex