Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alex037yang
OpenXG-RAN
Commits
29f18670
Commit
29f18670
authored
Sep 03, 2018
by
Elena Lukashova
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changes for H_hermH_plus_sigma2I.
parent
eac543aa
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
4 deletions
+15
-4
openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c
openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c
+15
-4
No files found.
openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.c
View file @
29f18670
...
...
@@ -81,22 +81,33 @@ void conjugate_transpose (int rows_A, int col_A, float complex *A, float complex
free
(
B
);
}
void
H_hermH_plus_sigma2I
(
int
row_A
,
int
col_A
,
float
complex
*
A
,
float
sigma2
,
float
complex
*
Result
)
void
H_hermH_plus_sigma2I
(
int
N
,
int
M
,
float
complex
*
A
,
float
sigma2
,
float
complex
*
Result
)
{
//C := alpha*op(A)*op(B) + beta*C,
enum
CBLAS_TRANSPOSE
transa
=
CblasConjTrans
;
enum
CBLAS_TRANSPOSE
transb
=
CblasNoTrans
;
int
rows_opA
=
N
;
// number of rows in op(A) and in C
int
col_opB
=
N
;
//number of columns of op(B) and in C
int
col_opA
=
N
;
//number of columns in op(A) and rows in op(B)
int
col_C
=
N
;
//number of columns in B
float
complex
alpha
=
1
.
0
+
I
*
0
;
int
lda
=
col_opA
;
float
complex
beta
=
1
.
0
+
I
*
0
;
int
ldc
=
col_opA
;
int
i
;
for
(
i
=
0
;
i
<
row_A
*
col_A
;
i
+=
row_A
+
1
)
Result
[
i
]
=
sigma2
*
(
1
.
0
+
I
*
0
);
float
complex
*
C
=
(
float
complex
*
)
calloc
(
ldc
*
col_opB
,
sizeof
(
float
complex
));
cblas_cgemm
(
CblasColMajor
,
transa
,
transb
,
col_A
,
col_A
,
row_A
,
&
alpha
,
A
,
row_A
,
A
,
row_A
,
&
beta
,
Result
,
col_A
);
for
(
i
=
0
;
i
<
lda
*
col_C
;
i
+=
N
+
1
)
C
[
i
]
=
sigma2
*
(
1
.
0
+
I
*
0
);
cblas_cgemm
(
CblasRowMajor
,
transa
,
transb
,
rows_opA
,
col_opB
,
col_opA
,
&
alpha
,
A
,
lda
,
A
,
lda
,
&
beta
,
C
,
ldc
);
memcpy
(
Result
,
C
,
N
*
M
*
sizeof
(
float
complex
));
free
(
C
);
}
void
HH_herm_plus_sigma2I
(
int
rows_A
,
int
col_A
,
float
complex
*
A
,
float
sigma2
,
float
complex
*
Result
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment