Overload List
| # | Signature | Description |
|---|---|---|
| 1 | TMtxVec *ArcSin() const; | The inverse sine. |
| 2 | TMtxVec *ArcSin(int Index, int Len) const; | Calculate the inverse sine of calling object elements [Index]...[Index+Len-1] in-place. |
| 3 | TMtxVec *ArcSin(TMtxVec *X) const; | Calculate the inverse sine of all X object elements and store the results in the calling object. |
| 4 | TMtxVec *ArcSin(TMtxVec *X, int XIndex, int Index, int Len) const; | Calculate the inverse sine of X object elements [XIndex]...[XIndex+Len-1]. The results are stored in calling object elements [Index]...[Index+Len-1]. |
Overload 1: TMtxVec *ArcSin() const;
The inverse sine.
Calculate the inverse sine of all calling object elements in-place. Values must be between -1 and 1. The return values will be in the range [0,PI], in radians.
#include "Math387.h"
#include "MtxExpr.h"
using namespace Dew;
using namespace Dew::Math;
void Example()
{
Matrix a;
a.SetIt(2, 2, false, DewArray<double>{ 0.0, 0.5, 0.707106781186548, 0.866025403784439 });
a.ArcSin();
Matrix expected;
expected.SetIt(2, 2, false, DewArray<double>{ 0.0, 0.523598775598299, 0.785398163397448, 1.0471975511966 });
if (!a.IsEqual(expected, 1e-10, TCompare::cmpAbsolute))
throw tException("Matrix.ArcSin: mismatch");
}
#include "MtxExpr.h"
#include "Units.MtxExpr.h"
using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::MtxExpr;
void Example()
{
Matrix a, b;
a.SetIt(1, 2, true, DewArray<double>{1, -0.5, 0.11, 0.9});
a.ArcSin(); //or
b = ArcSin(a); //or
a = ArcSin(a);
}
Overload 2: TMtxVec *ArcSin(int Index, int Len) const;
Calculate the inverse sine of calling object elements [Index]...[Index+Len-1] in-place.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Index | int | |
| 2 | Len | int |
An exception is raised if array borders are overrun.
#include "MtxExpr.h"
#include "Units.Math387.h"
#include "Units.MtxExpr.h"
using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units::Math387;
using namespace Dew::Math::Units::MtxExpr;
void Example()
{
Matrix a, b;
a = {{Cplx(1, -0.5), Cplx(0.11, 0.9)}};
a.ArcSin(); //or
b = ArcSin(a); //or
a = ArcSin(a);
}
Overload 3: TMtxVec *ArcSin(TMtxVec *X) const;
Calculate the inverse sine of all X object elements and store the results in the calling object.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtxVec * |
Size and Matrix::Complex properties of calling object are adjusted automatically.
#include "Math387.h"
#include "MtxExpr.h"
using namespace Dew;
using namespace Dew::Math;
void Example()
{
Matrix a;
Matrix x;
x.SetIt(2, 2, false, DewArray<double>{ 0.0, 0.5, 0.707106781186548, 0.866025403784439 });
a.ArcSin(x);
Matrix expected;
expected.SetIt(2, 2, false, DewArray<double>{ 0.0, 0.523598775598299, 0.785398163397448, 1.0471975511966 });
if (!a.IsEqual(expected, 1e-10, TCompare::cmpAbsolute))
throw tException("Matrix.ArcSin: mismatch");
}
Overload 4: TMtxVec *ArcSin(TMtxVec *X, int XIndex, int Index, int Len) const;
Calculate the inverse sine of X object elements [XIndex]...[XIndex+Len-1]. The results are stored in calling object elements [Index]...[Index+Len-1].
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtxVec * | |
| 2 | XIndex | int | |
| 3 | Index | int | |
| 4 | Len | int |
Size and Matrix::Complex properties of the calling object must be set explicitly. An exception is raised if array borders are overrun.