tenferro_internal_ad_surface/core/dynamic/
results.rs1use crate::Tensor;
2use tenferro_internal_ad_linalg::{
3 DynEigValues, DynEigenValues, DynLuValues, DynQrValues, DynSlogdetValues, DynSvdValues,
4};
5
6#[derive(Debug)]
7pub struct QrResult {
8 pub q: Tensor,
9 pub r: Tensor,
10}
11
12#[derive(Debug)]
13pub struct LstsqResult {
14 pub solution: Tensor,
15 pub residuals: Tensor,
16 pub rank: Vec<usize>,
17 pub singular_values: Tensor,
18}
19
20#[derive(Debug)]
21pub struct LuResult {
22 pub p: Tensor,
23 pub l: Tensor,
24 pub u: Tensor,
25}
26
27#[derive(Debug)]
28pub struct EigResult {
29 pub values: Tensor,
30 pub vectors: Tensor,
31}
32
33#[derive(Debug)]
34pub struct EighResult {
35 pub values: Tensor,
36 pub vectors: Tensor,
37}
38
39#[derive(Debug)]
40pub struct SvdResult {
41 pub u: Tensor,
42 pub s: Tensor,
43 pub vt: Tensor,
44}
45
46#[derive(Debug)]
47pub struct SlogdetResult {
48 pub sign: Tensor,
49 pub logabsdet: Tensor,
50}
51
52impl From<DynQrValues> for QrResult {
53 fn from(value: DynQrValues) -> Self {
54 Self {
55 q: Tensor::from_value(value.q),
56 r: Tensor::from_value(value.r),
57 }
58 }
59}
60
61impl From<DynLuValues> for LuResult {
62 fn from(value: DynLuValues) -> Self {
63 Self {
64 p: Tensor::from_value(value.p),
65 l: Tensor::from_value(value.l),
66 u: Tensor::from_value(value.u),
67 }
68 }
69}
70
71impl From<DynEigValues> for EigResult {
72 fn from(value: DynEigValues) -> Self {
73 Self {
74 values: Tensor::from_value(value.values),
75 vectors: Tensor::from_value(value.vectors),
76 }
77 }
78}
79
80impl From<DynEigenValues> for EighResult {
81 fn from(value: DynEigenValues) -> Self {
82 Self {
83 values: Tensor::from_value(value.values),
84 vectors: Tensor::from_value(value.vectors),
85 }
86 }
87}
88
89impl From<DynSvdValues> for SvdResult {
90 fn from(value: DynSvdValues) -> Self {
91 Self {
92 u: Tensor::from_value(value.u),
93 s: Tensor::from_value(value.s),
94 vt: Tensor::from_value(value.vt),
95 }
96 }
97}
98
99impl From<DynSlogdetValues> for SlogdetResult {
100 fn from(value: DynSlogdetValues) -> Self {
101 Self {
102 sign: Tensor::from_value(value.sign),
103 logabsdet: Tensor::from_value(value.logabsdet),
104 }
105 }
106}