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