all trigonometric functions with complex numbers in c/c++ code example

Example: all trigonometric functions with complex numbers in c/c++

#include "stdafx.h"
#include "calc.h"


double INF = DBL_MAX;
double mINF = INF * -1;

void cotan(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		complex_tan(x, y);
		division(1.0, 0.0, resultR, resultI);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For cotangent function the valid domain is {x| x != 0 + kpi, k = ..., -1, 0, 1, ...}  \n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

void sec(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		complex_cos(x, y);
		division(1.0, 0.0, resultR, resultI);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For secant function the valid domain is {x| x != pi/2 + kpi, k = ..., -1, 0, 1, ...}  \n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

void cosec(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		complex_sin(x, y);
		division(1.0, 0.0, resultR, resultI);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For cosecant function the valid domain is {x| x != 0 + kpi, k = ..., -1, 0, 1, ...}  \n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

void arcosec(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		division(1.0, 0.0, x, y);
		complex_asin(resultR, resultI);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For arc cosecant function the valid domain is [-INF, INF] ^ != [-1, 1].\n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

void arcsec(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		division(1.0, 0.0, x, y);
		complex_acos(resultR, resultI);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For arc secant function the valid domain is ]-INF, INF[ ^ != [-1, 1].\n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

void arcotg(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		division(1.0, 0.0, x, y);
		complex_atan(resultR, resultI);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For arc cotangent function the valid domain is [-INF, INF].\n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

void complex_cos(double x, double y) {
	resultR = 0; resultI = 0;
	if (x >= mINF && x <= INF && y >= mINF && y <= INF) {
		exponentiation(M_E, 0.0, -1 * y, x, 1);
		double napR = resultR, napI = resultI;
		exponentiation(M_E, 0.0, y, -1 * x, 1);
		double nap2R = resultR, nap2I = resultI;
		sum(napR, napI, nap2R, nap2I);
		double sumR = resultR, sumI = resultI;
		division(sumR, sumI, 2.0, 0.0);
	}
	else {
		if (rasf > 0) {
			printf("\nError in function domain.\n\n ==> For cosine function the valid domain is [-INF, INF].\n\n");
			printf(" ==> Your function argument: ");
			complexNumber(x, y);
		}
	}
}

Tags:

Misc Example