MeshLib C Docs
Loading...
Searching...
No Matches
MRSymMatrix2.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRVector2.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9#include <stdint.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_Matrix2d MR_Matrix2d; // Defined in `#include <MRCMesh/MRMatrix2.h>`.
16typedef struct MR_Matrix2f MR_Matrix2f; // Defined in `#include <MRCMesh/MRMatrix2.h>`.
17
18
22
26
30
34
38
44
49
55
61
66
72
78
83
89
93
98
101
104
109
112
115
121
125
129
134
139
144
150
156
162
168
173
178
183MRC_API const int32_t *MR_SymMatrix2i_Get_xx(const MR_SymMatrix2i *_this);
184
188MRC_API void MR_SymMatrix2i_Set_xx(MR_SymMatrix2i *_this, int32_t value);
189
195
200MRC_API const int32_t *MR_SymMatrix2i_Get_xy(const MR_SymMatrix2i *_this);
201
205MRC_API void MR_SymMatrix2i_Set_xy(MR_SymMatrix2i *_this, int32_t value);
206
212
217MRC_API const int32_t *MR_SymMatrix2i_Get_yy(const MR_SymMatrix2i *_this);
218
222MRC_API void MR_SymMatrix2i_Set_yy(MR_SymMatrix2i *_this, int32_t value);
223
229
233
238
241
244
249
252
255
261
265
269
274
279
284
290
296
302
308
313
318
324
329
335
341
346
352
358
363
369
373
378
381
384
389
392
395
401
405
409
414
419
424
430
436
442
448
453
458
464
469
475
481
486
492
498
503
509
513
518
521
524
529
534
537
540
546
550
554
559
564
569
575
581
587
593
598
603
611
616
621
633MRC_API MR_SymMatrix2f *MR_SymMatrix2f_pseudoinverse(const MR_SymMatrix2f *_this, const float *tol, int32_t *rank, MR_Vector2f *space);
634
639MRC_API const double *MR_SymMatrix2d_Get_xx(const MR_SymMatrix2d *_this);
640
645
651
656MRC_API const double *MR_SymMatrix2d_Get_xy(const MR_SymMatrix2d *_this);
657
662
668
673MRC_API const double *MR_SymMatrix2d_Get_yy(const MR_SymMatrix2d *_this);
674
679
685
689
694
697
700
705
708
711
717
721
725
730
735
740
746
752
758
764
769
774
782
787
792
804MRC_API MR_SymMatrix2d *MR_SymMatrix2d_pseudoinverse(const MR_SymMatrix2d *_this, const double *tol, int32_t *rank, MR_Vector2d *space);
805
806#ifdef __cplusplus
807} // extern "C"
808#endif
struct MR_SymMatrix2f MR_SymMatrix2f
Definition MRQuadraticForm.h:12
struct MR_SymMatrix2d MR_SymMatrix2d
Definition MRQuadraticForm.h:11
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_DefaultConstructArray(size_t num_elems)
MRC_API float * MR_SymMatrix2f_GetMutable_xy(MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_div_assign(MR_SymMatrix2b *_this, bool b)
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_inverse_1(const MR_SymMatrix2i64 *_this, MR_int64_t det)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_sub_assign(MR_SymMatrix2d *_this, const MR_SymMatrix2d *b)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_inverse_1(const MR_SymMatrix2b *_this, bool det)
MRC_API const MR_int64_t * MR_SymMatrix2i64_Get_xy(const MR_SymMatrix2i64 *_this)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_DefaultConstruct(void)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_sub_assign(MR_SymMatrix2f *_this, const MR_SymMatrix2f *b)
MRC_API void MR_SymMatrix2d_Set_yy(MR_SymMatrix2d *_this, double value)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_OffsetMutablePtr(MR_SymMatrix2d *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API void MR_SymMatrix2f_Set_xy(MR_SymMatrix2f *_this, float value)
MRC_API const bool * MR_SymMatrix2b_Get_xy(const MR_SymMatrix2b *_this)
MRC_API MR_int64_t MR_SymMatrix2i64_normSq(const MR_SymMatrix2i64 *_this)
MRC_API bool * MR_SymMatrix2b_GetMutable_xx(MR_SymMatrix2b *_this)
MRC_API void MR_SymMatrix2i64_DestroyArray(const MR_SymMatrix2i64 *_this)
Destroys a heap-allocated array of MR_SymMatrix2i64. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_OffsetMutablePtr(MR_SymMatrix2i64 *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_sub_assign(MR_SymMatrix2i *_this, const MR_SymMatrix2i *b)
MRC_API void MR_SymMatrix2i_Set_yy(MR_SymMatrix2i *_this, int32_t value)
MRC_API MR_int64_t MR_SymMatrix2i64_trace(const MR_SymMatrix2i64 *_this)
MRC_API MR_int64_t * MR_SymMatrix2i64_GetMutable_xx(MR_SymMatrix2i64 *_this)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_inverse_0(const MR_SymMatrix2f *_this)
MRC_API const MR_SymMatrix2f * MR_SymMatrix2f_OffsetPtr(const MR_SymMatrix2f *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API const bool * MR_SymMatrix2b_Get_yy(const MR_SymMatrix2b *_this)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_DefaultConstructArray(size_t num_elems)
MRC_API void MR_SymMatrix2d_Set_xy(MR_SymMatrix2d *_this, double value)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_DefaultConstruct(void)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_div_assign(MR_SymMatrix2i *_this, int32_t b)
MRC_API int32_t * MR_SymMatrix2i_GetMutable_yy(MR_SymMatrix2i *_this)
MRC_API const double * MR_SymMatrix2d_Get_yy(const MR_SymMatrix2d *_this)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_identity(void)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_pseudoinverse(const MR_SymMatrix2d *_this, const double *tol, int32_t *rank, MR_Vector2d *space)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_diagonal(float diagVal)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_DefaultConstruct(void)
MRC_API void MR_SymMatrix2f_DestroyArray(const MR_SymMatrix2f *_this)
Destroys a heap-allocated array of MR_SymMatrix2f. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_DefaultConstruct(void)
MRC_API float MR_SymMatrix2f_normSq(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_ConstructFromAnother(const MR_SymMatrix2f *_other)
MRC_API const MR_int64_t * MR_SymMatrix2i64_Get_xx(const MR_SymMatrix2i64 *_this)
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_AssignFromAnother(MR_SymMatrix2i64 *_this, const MR_SymMatrix2i64 *_other)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_DefaultConstructArray(size_t num_elems)
MRC_API double * MR_SymMatrix2d_GetMutable_xy(MR_SymMatrix2d *_this)
MRC_API void MR_SymMatrix2d_Destroy(const MR_SymMatrix2d *_this)
Destroys a heap-allocated instance of MR_SymMatrix2d. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_add_assign(MR_SymMatrix2f *_this, const MR_SymMatrix2f *b)
MRC_API int32_t MR_SymMatrix2i_trace(const MR_SymMatrix2i *_this)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_inverse_0(const MR_SymMatrix2d *_this)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_diagonal(double diagVal)
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_div_assign(MR_SymMatrix2i64 *_this, MR_int64_t b)
MRC_API void MR_SymMatrix2i_Destroy(const MR_SymMatrix2i *_this)
Destroys a heap-allocated instance of MR_SymMatrix2i. Does nothing if the pointer is null.
MRC_API MR_int64_t * MR_SymMatrix2i64_GetMutable_yy(MR_SymMatrix2i64 *_this)
MRC_API const MR_SymMatrix2d * MR_SymMatrix2d_OffsetPtr(const MR_SymMatrix2d *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API void MR_SymMatrix2b_Set_yy(MR_SymMatrix2b *_this, bool value)
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_add_assign(MR_SymMatrix2i64 *_this, const MR_SymMatrix2i64 *b)
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_identity(void)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_add_assign(MR_SymMatrix2i *_this, const MR_SymMatrix2i *b)
MRC_API bool * MR_SymMatrix2b_GetMutable_xy(MR_SymMatrix2b *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_identity(void)
struct MR_SymMatrix2i MR_SymMatrix2i
Definition MRSymMatrix2.h:25
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_sub_assign(MR_SymMatrix2i64 *_this, const MR_SymMatrix2i64 *b)
MRC_API const int32_t * MR_SymMatrix2i_Get_yy(const MR_SymMatrix2i *_this)
MRC_API const MR_int64_t * MR_SymMatrix2i64_Get_yy(const MR_SymMatrix2i64 *_this)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_AssignFromAnother(MR_SymMatrix2d *_this, const MR_SymMatrix2d *_other)
MRC_API bool MR_SymMatrix2b_det(const MR_SymMatrix2b *_this)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_identity(void)
MRC_API const double * MR_SymMatrix2d_Get_xy(const MR_SymMatrix2d *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_ConstructFromAnother(const MR_SymMatrix2b *_other)
MRC_API const MR_SymMatrix2b * MR_SymMatrix2b_OffsetPtr(const MR_SymMatrix2b *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_mul_assign(MR_SymMatrix2i64 *_this, MR_int64_t b)
struct MR_SymMatrix2i64 MR_SymMatrix2i64
Definition MRSymMatrix2.h:29
MRC_API void MR_SymMatrix2b_Destroy(const MR_SymMatrix2b *_this)
Destroys a heap-allocated instance of MR_SymMatrix2b. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_mul_assign(MR_SymMatrix2b *_this, bool b)
MRC_API void MR_SymMatrix2b_Set_xx(MR_SymMatrix2b *_this, bool value)
MRC_API void MR_SymMatrix2f_Set_yy(MR_SymMatrix2f *_this, float value)
MRC_API MR_Vector2d MR_SymMatrix2d_maxEigenvector(const MR_SymMatrix2d *_this)
MRC_API void MR_SymMatrix2i64_Destroy(const MR_SymMatrix2i64 *_this)
Destroys a heap-allocated instance of MR_SymMatrix2i64. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_div_assign(MR_SymMatrix2d *_this, double b)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_diagonal(int32_t diagVal)
MRC_API void MR_SymMatrix2i64_Set_xx(MR_SymMatrix2i64 *_this, MR_int64_t value)
MRC_API float * MR_SymMatrix2f_GetMutable_xx(MR_SymMatrix2f *_this)
MRC_API void MR_SymMatrix2d_DestroyArray(const MR_SymMatrix2d *_this)
Destroys a heap-allocated array of MR_SymMatrix2d. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_DefaultConstruct(void)
MRC_API void MR_SymMatrix2i64_Set_yy(MR_SymMatrix2i64 *_this, MR_int64_t value)
MRC_API int32_t MR_SymMatrix2i_det(const MR_SymMatrix2i *_this)
MRC_API void MR_SymMatrix2i_DestroyArray(const MR_SymMatrix2i *_this)
Destroys a heap-allocated array of MR_SymMatrix2i. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_mul_assign(MR_SymMatrix2f *_this, float b)
MRC_API bool MR_SymMatrix2b_normSq(const MR_SymMatrix2b *_this)
MRC_API void MR_SymMatrix2d_Set_xx(MR_SymMatrix2d *_this, double value)
MRC_API void MR_SymMatrix2i_Set_xy(MR_SymMatrix2i *_this, int32_t value)
MRC_API void MR_SymMatrix2i_Set_xx(MR_SymMatrix2i *_this, int32_t value)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_sub_assign(MR_SymMatrix2b *_this, const MR_SymMatrix2b *b)
MRC_API MR_int64_t * MR_SymMatrix2i64_GetMutable_xy(MR_SymMatrix2i64 *_this)
MRC_API int32_t * MR_SymMatrix2i_GetMutable_xy(MR_SymMatrix2i *_this)
MRC_API const float * MR_SymMatrix2f_Get_xy(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_AssignFromAnother(MR_SymMatrix2f *_this, const MR_SymMatrix2f *_other)
MRC_API MR_Vector2f MR_SymMatrix2f_eigens(const MR_SymMatrix2f *_this, MR_Matrix2f *eigenvectors)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_mul_assign(MR_SymMatrix2i *_this, int32_t b)
MRC_API const float * MR_SymMatrix2f_Get_xx(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_DefaultConstructArray(size_t num_elems)
MRC_API void MR_SymMatrix2b_DestroyArray(const MR_SymMatrix2b *_this)
Destroys a heap-allocated array of MR_SymMatrix2b. Does nothing if the pointer is null.
MRC_API const float * MR_SymMatrix2f_Get_yy(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_inverse_0(const MR_SymMatrix2b *_this)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_ConstructFromAnother(const MR_SymMatrix2d *_other)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_inverse_0(const MR_SymMatrix2i *_this)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_inverse_1(const MR_SymMatrix2i *_this, int32_t det)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_Construct(const MR_SymMatrix2f *m)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_mul_assign(MR_SymMatrix2d *_this, double b)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_AssignFromAnother(MR_SymMatrix2i *_this, const MR_SymMatrix2i *_other)
MRC_API MR_Vector2d MR_SymMatrix2d_eigens(const MR_SymMatrix2d *_this, MR_Matrix2d *eigenvectors)
MRC_API MR_int64_t MR_SymMatrix2i64_det(const MR_SymMatrix2i64 *_this)
MRC_API bool MR_SymMatrix2b_trace(const MR_SymMatrix2b *_this)
MRC_API bool * MR_SymMatrix2b_GetMutable_yy(MR_SymMatrix2b *_this)
MRC_API double MR_SymMatrix2d_trace(const MR_SymMatrix2d *_this)
MRC_API const MR_SymMatrix2i * MR_SymMatrix2i_OffsetPtr(const MR_SymMatrix2i *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API float * MR_SymMatrix2f_GetMutable_yy(MR_SymMatrix2f *_this)
MRC_API float MR_SymMatrix2f_det(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_OffsetMutablePtr(MR_SymMatrix2b *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_diagonal(MR_int64_t diagVal)
MRC_API double MR_SymMatrix2d_det(const MR_SymMatrix2d *_this)
MRC_API float MR_SymMatrix2f_trace(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_identity(void)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_add_assign(MR_SymMatrix2d *_this, const MR_SymMatrix2d *b)
MRC_API MR_Vector2f MR_SymMatrix2f_eigenvector(const MR_SymMatrix2f *_this, float eigenvalue)
MRC_API double MR_SymMatrix2d_normSq(const MR_SymMatrix2d *_this)
MRC_API const int32_t * MR_SymMatrix2i_Get_xy(const MR_SymMatrix2i *_this)
MRC_API int32_t * MR_SymMatrix2i_GetMutable_xx(MR_SymMatrix2i *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_diagonal(bool diagVal)
MRC_API void MR_SymMatrix2f_Destroy(const MR_SymMatrix2f *_this)
Destroys a heap-allocated instance of MR_SymMatrix2f. Does nothing if the pointer is null.
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_ConstructFromAnother(const MR_SymMatrix2i64 *_other)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_pseudoinverse(const MR_SymMatrix2f *_this, const float *tol, int32_t *rank, MR_Vector2f *space)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_div_assign(MR_SymMatrix2f *_this, float b)
MRC_API int32_t MR_SymMatrix2i_normSq(const MR_SymMatrix2i *_this)
MRC_API const double * MR_SymMatrix2d_Get_xx(const MR_SymMatrix2d *_this)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_OffsetMutablePtr(MR_SymMatrix2f *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API const int32_t * MR_SymMatrix2i_Get_xx(const MR_SymMatrix2i *_this)
MRC_API void MR_SymMatrix2f_Set_xx(MR_SymMatrix2f *_this, float value)
MRC_API MR_Vector2f MR_SymMatrix2f_maxEigenvector(const MR_SymMatrix2f *_this)
MRC_API MR_SymMatrix2i64 * MR_SymMatrix2i64_inverse_0(const MR_SymMatrix2i64 *_this)
MRC_API MR_Vector2d MR_SymMatrix2d_eigenvector(const MR_SymMatrix2d *_this, double eigenvalue)
MRC_API MR_SymMatrix2d * MR_SymMatrix2d_inverse_1(const MR_SymMatrix2d *_this, double det)
MRC_API const bool * MR_SymMatrix2b_Get_xx(const MR_SymMatrix2b *_this)
MRC_API void MR_SymMatrix2b_Set_xy(MR_SymMatrix2b *_this, bool value)
MRC_API double * MR_SymMatrix2d_GetMutable_xx(MR_SymMatrix2d *_this)
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_AssignFromAnother(MR_SymMatrix2b *_this, const MR_SymMatrix2b *_other)
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_OffsetMutablePtr(MR_SymMatrix2i *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_ConstructFromAnother(const MR_SymMatrix2i *_other)
struct MR_SymMatrix2b MR_SymMatrix2b
Definition MRSymMatrix2.h:21
MRC_API MR_SymMatrix2b * MR_SymMatrix2b_add_assign(MR_SymMatrix2b *_this, const MR_SymMatrix2b *b)
MRC_API void MR_SymMatrix2i64_Set_xy(MR_SymMatrix2i64 *_this, MR_int64_t value)
MRC_API const MR_SymMatrix2i64 * MR_SymMatrix2i64_OffsetPtr(const MR_SymMatrix2i64 *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_SymMatrix2i * MR_SymMatrix2i_DefaultConstructArray(size_t num_elems)
MRC_API MR_SymMatrix2f * MR_SymMatrix2f_inverse_1(const MR_SymMatrix2f *_this, float det)
MRC_API double * MR_SymMatrix2d_GetMutable_yy(MR_SymMatrix2d *_this)
int64_t MR_int64_t
Definition common.h:13
#define MRC_API
Definition exports.h:11
Definition MRMatrix2.h:55
Definition MRMatrix2.h:46
Definition MRVector2.h:52
Definition MRVector2.h:44