rstsr_blas_traits/
cblas_flags.rs1#[repr(u32)]
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum CblasLayout {
6 RowMajor = 101,
7 ColMajor = 102,
8}
9
10pub type CblasOrder = CblasLayout;
11
12#[repr(u32)]
13#[derive(Debug, Clone, Copy, PartialEq, Eq)]
14pub enum CblasTranspose {
15 NoTrans = 111,
16 Trans = 112,
17 ConjTrans = 113,
18 ConjNoTrans = 114,
19}
20
21#[repr(u32)]
22#[derive(Debug, Clone, Copy, PartialEq, Eq)]
23pub enum CblasUplo {
24 Upper = 121,
25 Lower = 122,
26}
27
28#[repr(u32)]
29#[derive(Debug, Clone, Copy, PartialEq, Eq)]
30pub enum CblasDiag {
31 NonUnit = 131,
32 Unit = 132,
33}
34
35#[repr(u32)]
36#[derive(Debug, Clone, Copy, PartialEq, Eq)]
37pub enum CblasSide {
38 Left = 141,
39 Right = 142,
40}
41
42pub type CBLAS_ORDER = u32;
43pub type CBLAS_TRANSPOSE = u32;
44pub type CBLAS_UPLO = u32;
45pub type CBLAS_DIAG = u32;
46pub type CBLAS_SIDE = u32;
47
48use rstsr_core::prelude::rstsr_structs::{FlagDiag, FlagOrder, FlagSide, FlagTrans, FlagUpLo};
53
54impl From<FlagTrans> for CblasTranspose {
55 fn from(flag: FlagTrans) -> Self {
56 match flag {
57 FlagTrans::N => CblasTranspose::NoTrans,
58 FlagTrans::T => CblasTranspose::Trans,
59 FlagTrans::C => CblasTranspose::ConjTrans,
60 _ => panic!("Invalid flag for trans"),
61 }
62 }
63}
64
65impl From<FlagUpLo> for CblasUplo {
66 fn from(flag: FlagUpLo) -> Self {
67 match flag {
68 FlagUpLo::U => CblasUplo::Upper,
69 FlagUpLo::L => CblasUplo::Lower,
70 }
71 }
72}
73
74impl From<FlagDiag> for CblasDiag {
75 fn from(flag: FlagDiag) -> Self {
76 match flag {
77 FlagDiag::U => CblasDiag::Unit,
78 FlagDiag::N => CblasDiag::NonUnit,
79 }
80 }
81}
82
83impl From<FlagSide> for CblasSide {
84 fn from(flag: FlagSide) -> Self {
85 match flag {
86 FlagSide::L => CblasSide::Left,
87 FlagSide::R => CblasSide::Right,
88 }
89 }
90}
91
92impl From<FlagOrder> for CblasLayout {
93 fn from(order: FlagOrder) -> Self {
94 match order {
95 FlagOrder::RowMajor => CblasOrder::RowMajor,
96 FlagOrder::ColMajor => CblasOrder::ColMajor,
97 }
98 }
99}
100
101