Skip to content

Commit

Permalink
mulmi
Browse files Browse the repository at this point in the history
  • Loading branch information
jtlap committed Nov 17, 2023
1 parent d9ea3c3 commit da628a9
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 1 deletion.
2 changes: 1 addition & 1 deletion include/kyosu/types/impl/arithmetic.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ namespace kyosu::_
else if constexpr(kyosu::concepts::quaternion<C>)
return quaternion(ipart(c), -real(c), kpart(c), -jpart(c));
else
return i(as(c))*c;
return mi(as(c))*c;
}

template<typename C>
Expand Down
15 changes: 15 additions & 0 deletions test/unit/function/muli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,18 @@ TTS_CASE_WITH ( "Check kyosu::muli over quaternion"
using type = kyosu::quaternion_t<T>;
TTS_EQUAL(kyosu::muli(type(r,i,j,k)), kyosu::i(kyosu::as<T>())*type(r,i,j,k));
};


TTS_CASE_WITH ( "Check kyosu::muli over octonion"
, kyosu::real_types
, tts::generate ( tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
)
)
<typename T>(T r, T i, T j, T k, T l, T li, T lj, T lk)
{
using type = kyosu::octonion_t<T>;
TTS_EQUAL(kyosu::muli(type(r,i,j,k,l,li,lj,lk)), kyosu::i(kyosu::as<T>())*type(r,i,j,k,l,li,lj,lk));
};
54 changes: 54 additions & 0 deletions test/unit/function/mulmi.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
//======================================================================================================================
/*
Kyosu - Complex Without Complexes
Copyright : KYOSU Contributors & Maintainers
SPDX-License-Identifier: BSL-1.0
*/
//======================================================================================================================
#include <kyosu/kyosu.hpp>
#include <test.hpp>

TTS_CASE_WITH ( "Check kyosu::mulmi over real"
, kyosu::real_types
, tts::generate(tts::randoms(-10,10))
)
<typename T>(T data)
{
TTS_EQUAL(kyosu::mulmi(data), kyosu::mi(kyosu::as<T>())*data);
};

TTS_CASE_WITH ( "Check kyosu::mulmi over complex"
, kyosu::real_types
, tts::generate(tts::randoms(-10,10), tts::randoms(-10,10))
)
<typename T>(T r, T i)
{
TTS_EQUAL(kyosu::mulmi(kyosu::complex(r,i)), kyosu::mi(kyosu::as<T>())*kyosu::complex(r,i));
};

TTS_CASE_WITH ( "Check kyosu::mulmi over quaternion"
, kyosu::real_types
, tts::generate ( tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
)
)
<typename T>(T r, T i, T j, T k)
{
using type = kyosu::quaternion_t<T>;
TTS_EQUAL(kyosu::mulmi(type(r,i,j,k)), kyosu::mi(kyosu::as<T>())*type(r,i,j,k));
};


TTS_CASE_WITH ( "Check kyosu::mulmi over octonion"
, kyosu::real_types
, tts::generate ( tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
, tts::randoms(-10,10), tts::randoms(-10,10)
)
)
<typename T>(T r, T i, T j, T k, T l, T li, T lj, T lk)
{
using type = kyosu::octonion_t<T>;
TTS_EQUAL(kyosu::mulmi(type(r,i,j,k,l,li,lj,lk)), kyosu::mi(kyosu::as<T>())*type(r,i,j,k,l,li,lj,lk));
};

0 comments on commit da628a9

Please sign in to comment.