mirror of
https://github.com/louisrubet/rpn
synced 2025-02-07 08:45:48 +01:00
#133: added complex im
This commit is contained in:
parent
7c870f42c4
commit
96da73ca3e
3 changed files with 30 additions and 1 deletions
|
@ -59,6 +59,7 @@ program::keyword_t program::s_keywords[] =
|
||||||
|
|
||||||
//COMPLEX
|
//COMPLEX
|
||||||
{ cmd_keyword, "re", &program::re, "complex real part" },
|
{ cmd_keyword, "re", &program::re, "complex real part" },
|
||||||
|
{ cmd_keyword, "im", &program::im, "complex imaginary part" },
|
||||||
|
|
||||||
//TEST
|
//TEST
|
||||||
{ cmd_undef, "", NULL, "\nTEST"},
|
{ cmd_undef, "", NULL, "\nTEST"},
|
||||||
|
|
|
@ -7,6 +7,19 @@ void re()
|
||||||
_stack->pop_back();
|
_stack->pop_back();
|
||||||
|
|
||||||
number* re = (number*)_stack->allocate_back(number::calc_size(), cmd_number);
|
number* re = (number*)_stack->allocate_back(number::calc_size(), cmd_number);
|
||||||
CHECK_MPFR(mpfr_set(re->_value.mpfr, ((number*)_branch_stack.get_obj(0))->_value.mpfr, floating_t::s_mpfr_rnd));
|
CHECK_MPFR(mpfr_set(re->_value.mpfr, ((complex*)_branch_stack.get_obj(0))->re()->mpfr, floating_t::s_mpfr_rnd));
|
||||||
|
_branch_stack.pop_back();
|
||||||
|
}
|
||||||
|
|
||||||
|
void im()
|
||||||
|
{
|
||||||
|
MIN_ARGUMENTS(1);
|
||||||
|
ARG_MUST_BE_OF_TYPE(0, cmd_complex);
|
||||||
|
|
||||||
|
stack::copy_and_push_back(*_stack, _stack->size()-1, _branch_stack);
|
||||||
|
_stack->pop_back();
|
||||||
|
|
||||||
|
number* im = (number*)_stack->allocate_back(number::calc_size(), cmd_number);
|
||||||
|
CHECK_MPFR(mpfr_set(im->_value.mpfr, ((complex*)_branch_stack.get_obj(0))->im()->mpfr, floating_t::s_mpfr_rnd));
|
||||||
_branch_stack.pop_back();
|
_branch_stack.pop_back();
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,6 +122,21 @@ re
|
||||||
-> error should be 2
|
-> error should be 2
|
||||||
drop
|
drop
|
||||||
|
|
||||||
|
# im (1)
|
||||||
|
(1.2,3.4) im
|
||||||
|
-> stack should be 3.4
|
||||||
|
drop
|
||||||
|
|
||||||
|
# im (2)
|
||||||
|
3 re
|
||||||
|
-> error should be 3
|
||||||
|
drop
|
||||||
|
|
||||||
|
# im (3)
|
||||||
|
re
|
||||||
|
-> error should be 2
|
||||||
|
drop
|
||||||
|
|
||||||
# chs
|
# chs
|
||||||
(3.14,6.28) chs
|
(3.14,6.28) chs
|
||||||
-> stack should be (-3.14,-6.28)
|
-> stack should be (-3.14,-6.28)
|
||||||
|
|
Loading…
Add table
Reference in a new issue