Numworks Epsilon
1.4.1
Graphing Calculator Operating System
division.cpp
Go to the documentation of this file.
1
#include <
quiz.h
>
2
#include <
poincare.h
>
3
#include <
ion.h
>
4
#include <cmath>
5
#include <
assert.h
>
6
#include "
helper.h
"
7
8
using namespace
Poincare
;
9
10
QUIZ_CASE
(poincare_division_evaluate) {
11
Complex<float>
a[1] = {
Complex<float>::Float
(0.5f)};
12
assert_parsed_expression_evaluates_to
(
"1/2"
, a);
13
14
Complex<double>
b[1] = {
Complex<double>::Cartesian
(13.0/17.0, 1.0/17.0)};
15
assert_parsed_expression_evaluates_to
(
"(3+I)/(4+I)"
, b);
16
17
#if MATRICES_ARE_DEFINED
18
Complex<float>
c
[6] = {
Complex<float>::Float
(0.5f),
Complex<float>::Float
(1.0f),
Complex<float>::Float
(1.5f),
Complex<float>::Float
(2.0f),
Complex<float>::Float
(2.5f),
Complex<float>::Float
(3.0f)};
19
assert_parsed_expression_evaluates_to
(
"[[1,2][3,4][5,6]]/2"
,
c
, 3, 2);
20
21
Complex<double>
d[6] = {
Complex<double>::Cartesian
(4.0/17.0, -1.0/17.0),
Complex<double>::Cartesian
(9.0/17.0, 2.0/17.0),
Complex<double>::Cartesian
(12.0/17.0, -3.0/17.0),
Complex<double>::Cartesian
(16.0/17.0, -4.0/17.0),
Complex<double>::Cartesian
(20.0/17.0, -5.0/17.0),
Complex<double>::Cartesian
(24.0/17.0, -6.0/17.0)};
22
assert_parsed_expression_evaluates_to
(
"[[1,2+I][3,4][5,6]]/(4+I)"
, d, 3, 2);
23
24
Complex<float>
e[4] = {
Complex<float>::Float
(2.0f),
Complex<float>::Float
(-1.0f),
Complex<float>::Float
(1.0f),
Complex<float>::Float
(0.0f)};
25
assert_parsed_expression_evaluates_to
(
"[[1,2][3,4]]/[[3,4][5,6]]"
, e, 2, 2);
26
27
Complex<double>
f[4] = {
Complex<double>::Float
(-9.0),
Complex<double>::Float
(6.0),
Complex<double>::Float
(15.0/2.0),
Complex<double>::Float
(-9.0/2.0)};
28
assert_parsed_expression_evaluates_to
(
"3/[[3,4][5,6]]"
, f, 2, 2);
29
30
// TODO: add this test when inverse of complex matrix is implemented
31
/* Complex<double> g[4] = {Complex<double>::Cartesian(-9.0, -12.0), Complex<double>::Cartesian(6.0, 8.0), Complex<double>::Cartesian(15.0/2.0, 10.0), Complex<double>::Cartesian(-9.0/2.0, -6.0)};
32
assert_parsed_expression_evaluates_to("(3+4i)/[[1,2+i][3,4][5,6]]", g, 2, 2);*/
33
34
#endif
35
36
Complex<float>
h[1] = {
Complex<float>::Cartesian
(.5f, -.5f)};
37
assert_parsed_expression_evaluates_to
(
"1E20/(1E20+1E20I)"
, h);
38
39
Complex<double>
i[1] = {
Complex<double>::Cartesian
(.5, -.5)};
40
assert_parsed_expression_evaluates_to
(
"1E155/(1E155+1E155I)"
, i);
41
}
Poincare::Complex::Cartesian
static Complex< T > Cartesian(T a, T b)
Definition:
complex.cpp:28
poincare.h
ion.h
Poincare
Definition:
absolute_value.h:8
assert.h
c
c(generic_all_nodes)
Poincare::Complex
Definition:
complex.h:12
assert_parsed_expression_evaluates_to
void assert_parsed_expression_evaluates_to(const char *expression, Complex< T > *results, int numberOfRows, int numberOfColumns, Expression::AngleUnit angleUnit)
Definition:
helper.cpp:69
quiz.h
Poincare::Complex::Float
static Complex< T > Float(T x)
Definition:
complex.cpp:23
QUIZ_CASE
QUIZ_CASE(poincare_division_evaluate)
Definition:
division.cpp:10
helper.h
epsilon
poincare
test
division.cpp
Generated by
1.8.14