ard_newbie:
I tried to upload this Library this way, and I think it works (at least, I have no error at compile time):Open a new sketch that you can call Complex.ino :
//
// FILE: complex.ino
// AUTHOR: Rob Tillaart
// DATE: 2013-09-23
//
// PUPROSE: test complex math
//
// Serial.print(Complex) supported since 0.1.05
#include "complex.h"
void setup()
{
Serial.begin(115200);
Serial.print("\n Complex numbers test for Arduino: ");
Serial.println(COMPLEX_LIB_VERSION);
Serial.println("\n1. Print Complex, set, real, imag");
Complex c1(10.0, -2.0);
Complex c2(3, 0);
Complex c3(-10, 4);
Complex c4(-5,-5);
Complex c5(0, 0);
Serial.println(one);
Serial.println(c1);
Serial.println(c2);
Serial.println(c3);
Serial.println(c4);
c3.set(0,0);
Serial.println(c3);
Serial.println(c3.real());
Serial.println(c3.imag());
Serial.println("\n2. == != ");
c5 = c1;
if (c5 == c1) Serial.println("ok :)");
else Serial.println(" fail :(");
c5 = c1 + 1;
if (c5 != c1) Serial.println("ok :)");
else Serial.println(" fail :(");
c5 = 3;
if (c5 == 3) Serial.println("ok :)");
else Serial.println(" fail :(");
Serial.println("\n3. negation - ");
c5 = -c1;
Serial.println(c5);
c5 = -c5;
Serial.println(c5);
if (c5 == c1) Serial.println("ok :)");
else Serial.println(" fail :(");
Serial.println("\n4. + - ");
c5 = c1 + c2;
Serial.println(c5);
c5 = c1 + 3;
Serial.println(c5);
c5 = c1 - c2;
Serial.println(c5);
c5 = c1 - 3;
Serial.println(c5);
Serial.println("\n5. * / ");
c5 = c1 * c2;
Serial.println(c5);
c5 = c5 * 3;
Serial.println(c5);
c5 = c5 / c2;
Serial.println(c5);
c5 = c5 / 3;
Serial.println(c5);
c5 = c1 / c2 * c2;
Serial.println(c5);
c5 = c1 * c4 / c4;
Serial.println(c5);
Serial.println("\n6. assign += -= *= /=");
c5 = c1;
c5 += c1;
Serial.println(c5);
c5 += 3;
Serial.println(c5);
c5 -= c1;
Serial.println(c5);
c5 -= 3;
Serial.println(c5);
c5 *= c1;
Serial.println(c5);
c5 *= 3;
Serial.println(c5);
c5 /= c1;
Serial.println(c5);
c5 /= 3;
Serial.println(c5);
Serial.println("\n7. phase modulus polar");
Serial.println(c1);
double m = c1.modulus();
Serial.println(m);
double p = c1.phase();
Serial.println(p);
c5.polar(m, p);
Serial.println(c5);
Serial.println("\n8. conjugate reciprocal");
c5 = c1.conjugate();
Serial.println(c5);
c5 = c5.conjugate();
Serial.println(c5);
c5 = c1.reciprocal();
Serial.println(c5);
c5 = c5.reciprocal();
Serial.println(c5);
Serial.println("\n9. power: exp log pow sqrt sqr logn log10");
c5 = c1.c_sqr();
Serial.println(c5);
c5 = c1.c_exp();
Serial.println(c5);
c5 = c5.c_log();
Serial.println(c5);
c5 = c1.c_pow(2);
Serial.println(c5);
c5 = c5.c_sqrt();
Serial.println(c5);
c5 = c5.c_sqr();
Serial.println(c5);
c5 = c1.c_pow(c2);
Serial.println(c5);
c5 = c5.c_pow(c2.reciprocal());
Serial.println(c5);
c5 = c5.c_logn(c4);
Serial.println(c5);
c5 = c4.c_pow(c5);
Serial.println(c5);
c5 = c5.c_log10();
Serial.println(c5);
Serial.println("\n10. gonio: sin cos tan asin acos atan");
c1.set(0.5, 0.5);
c5 = c1.c_sin();
Serial.println(c5);
c5 = c5.c_asin();
Serial.println(c5);
c5 = c1.c_cos();
Serial.println(c5);
c5 = c5.c_acos();
Serial.println(c5);
c5 = c1.c_tan();
Serial.println(c5);
c5 = c5.c_atan();
Serial.println(c5);
Serial.println("\n11. gonio csc sec cot acsc asec acot");
c1.set(0.5, 0.5);
c5 = c1.c_csc();
Serial.println(c5);
c5 = c5.c_acsc();
Serial.println(c5);
c5 = c1.c_sec();
Serial.println(c5);
c5 = c5.c_asec();
Serial.println(c5);
c5 = c1.c_cot();
Serial.println(c5);
c5 = c5.c_acot();
Serial.println(c5);
Serial.println("\n12. gonio hyperbolicus I ");
c1.set(0.5, 0.5);
c5 = c1.c_sinh();
Serial.println(c5);
c5 = c5.c_asinh();
Serial.println(c5);
c5 = c1.c_cosh();
Serial.println(c5);
c5 = c5.c_acosh();
Serial.println(c5);
c5 = c1.c_tanh();
Serial.println(c5);
c5 = c5.c_atanh();
Serial.println(c5);
Serial.println("\n13. gonio hyperbolicus II ");
c1.set(0.5, 0.5);
c5 = c1.c_csch();
Serial.println(c5);
c5 = c5.c_acsch();
Serial.println(c5);
c5 = c1.c_sech();
Serial.println(c5);
c5 = c5.c_asech();
Serial.println(c5);
c5 = c1.c_coth();
Serial.println(c5);
c5 = c5.c_acoth();
Serial.println(c5);
Serial.println("\n.. Complex done");
uint32_t start = micros();
for (int i=0; i<1000; i++)
{
c5 = c5.c_csc();
}
uint32_t dur = micros() - start;
Serial.println(dur);
Serial.println(one);
}
void loop()
{
}
//
// END OF FILE
//
/* OUTPUT:
*
Complex numbers test for Arduino: 0.1.09
-
Print Complex, set, real, imag
1.000 0.000i
10.000 -2.000i
3.000 0.000i
-10.000 4.000i
-5.000 -5.000i
0.000 0.000i
0.00
0.00 -
== !=
ok
ok
ok -
negation -
-10.000 2.000i
10.000 -2.000i
ok -
-
13.000 -2.000i
13.000 -2.000i
7.000 -2.000i
7.000 -2.000i
-
- /
30.000 -6.000i
90.000 -18.000i
30.000 -6.000i
10.000 -2.000i
10.000 -2.000i
10.000 -2.000i
- /
-
assign += -= *= /=
20.000 -4.000i
23.000 -4.000i
13.000 -2.000i
10.000 -2.000i
96.000 -40.000i
288.000 -120.000i
30.000 -6.000i
10.000 -2.000i -
phase modulus polar
10.000 -2.000i
10.20
-0.20
10.000 -2.000i -
conjugate reciprocal
10.000 2.000i
10.000 -2.000i
0.096 0.019i
10.000 -2.000i -
power: exp log pow sqrt sqr logn log10
96.000 -40.000i
-9166.244 -20028.609i
10.000 -2.000i
96.000 -40.000i
10.000 -2.000i
96.000 -40.000i
880.000 -592.000i
10.000 -2.000i
0.534 0.542i
10.000 -2.000i
1.009 -0.086i -
gonio: sin cos tan asin acos atan
0.541 0.457i
0.500 0.500i
0.990 -0.250i
0.500 0.500i
0.404 0.564i
0.500 0.500i -
gonio csc sec cot acsc asec acot
1.078 -0.912i
0.500 0.500i
0.950 0.240i
0.500 0.500i
0.839 -1.172i
0.500 0.500i -
gonio hyperbolicus I
0.457 0.541i
0.500 0.500i
0.990 0.250i
0.500 0.500i
0.564 0.404i
0.500 0.500i -
gonio hyperbolicus II
0.912 -1.078i
0.500 0.500i
0.950 -0.240i
0.500 0.500i
1.172 -0.839i
0.500 0.500i
.. Complex done
116805
1.000 0.000i
*/
and Inside the IDE window, click in the upper right Arrow to open a folder Inside this window that you call Complex.h . Copy and paste Complex.h from the original library inside Complex.h. Click again in the upper right Arrow and add a new folder Inside Complex.ino that you call Complex.cpp . Copy and paste Complex.cpp from the original Library Inside Complex.cpp Then compile, upload and run Complex.ino on your DUE. I did a copy of the results at the end of Complex.ino above.
In the following link you will find the complex library that works on Arduino DUE, just read the ReleaseNote.txt. Your post @ard_newbie was very helpful to find this compilation mistake.