Skip to content

Commit 8f96188

Browse files
committed
wip: Add example files
1 parent be0166d commit 8f96188

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed

compile.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
gcc -std=c17 -I/home/johannes/src/volk/include -x c main.c -o mainvolkgnuc -lm
2+
clang -std=c17 -I/home/johannes/src/volk/include -x c main.c -o mainvolkclangc -lm
3+
g++ -std=c++17 -I/home/johannes/src/volk/include -x c++ main.cc -o mainvolkcpp -lm -lfmt

main.c

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
2+
#include <stdio.h>
3+
#include <volk/volk_complex.h>
4+
5+
int main(int argc, char* argv[])
6+
{
7+
lv_32fc_t fc_cpl[4];
8+
printf("float=%lu, complex float=%lu, complex float array[4]=%lu\n",
9+
sizeof(float),
10+
sizeof(lv_32fc_t),
11+
sizeof(fc_cpl));
12+
13+
for (int i = 0; i < 4; i++) {
14+
fc_cpl[i] = (i + 3) + I * (i + 8);
15+
16+
fc_cpl[i] = lv_cmake(i + 3, i + 8);
17+
}
18+
for (int i = 0; i < 4; i++) {
19+
lv_32fc_t val = fc_cpl[i];
20+
lv_32fc_t cval = conj(val);
21+
lv_32fc_t gval = ~val;
22+
lv_32fc_t mult = val * val;
23+
printf("val = %+.1f%+.1fj\n", creal(val), cimag(val));
24+
printf("conj(val)= %+.1f%+.1fj\n", creal(cval), cimag(cval));
25+
printf("gcc: ~val= %+.1f%+.1fj\n", creal(gval), cimag(gval));
26+
printf("val*val = %+.1f%+.1fj\n", creal(mult), cimag(mult));
27+
}
28+
29+
lv_8sc_t sc_cpl[4];
30+
printf("\n\nchar=%lu, complex char=%lu, complex char array[4]=%lu\n",
31+
sizeof(char),
32+
sizeof(lv_8sc_t),
33+
sizeof(sc_cpl));
34+
35+
for (int i = 0; i < 4; i++) {
36+
// lv_8sc_t value = (i + 3) + I * (i + 8);
37+
// printf("value=%+hhi%+hhij\n", creal(value), cimag(value));
38+
// sc_cpl[i] = (i + 3) + I * (i + 8);
39+
sc_cpl[i] = lv_cmake(i + 3, i + 8);
40+
// printf("%i + j %i\n", creal(sc_cpl[i]), cimag(sc_cpl[i]));
41+
}
42+
for (int i = 0; i < 4; i++) {
43+
lv_8sc_t val = sc_cpl[i];
44+
lv_8sc_t cval = conj(val);
45+
// lv_8sc_t cval = lv_cmake(creal(val), -cimag(val));
46+
lv_8sc_t gval = ~val;
47+
lv_8sc_t mult = val * val;
48+
printf("val = %+hhi%+hhij\n", __real__ val, __imag__ val);
49+
printf("conj(val)= %+hhi%+hhij\n", __real__ cval, __imag__ cval);
50+
printf("gcc: ~val= %+hhi%+hhij\n", __real__ gval, __imag__ gval);
51+
printf("val*val = %+hhi%+hhij\n", __real__ mult, __imag__ mult);
52+
}
53+
54+
// char* values = (char*) sc_cpl;
55+
// for (int i = 0; i < 8; i++) {
56+
// printf("%hhi\n", values[i]);
57+
// }
58+
}

main.cc

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#include <fmt/core.h>
2+
#include <cstdlib>
3+
#include <iostream>
4+
#include <vector>
5+
#include <complex>
6+
7+
8+
#include <volk/volk_complex.h>
9+
10+
11+
int main(int argc, char* argv[])
12+
{
13+
lv_32fc_t fc_cpl[4];
14+
fmt::print("float={}, complex float={}, complex float array[4]={}\n",
15+
sizeof(float),
16+
sizeof(lv_32fc_t),
17+
sizeof(fc_cpl));
18+
19+
20+
std::vector<lv_32fc_t> vec(4);
21+
for (int i = 0; i < 4; i++) {
22+
auto foo = std::complex<float>( (i + 3), (i + 8) );
23+
fmt::print("std::complex: ({:+.1f}{:+.1f}j)\n", std::real(foo), std::imag(foo));
24+
lv_32fc_t bar = lv_32fc_t{5, 6};
25+
vec.at(i) = bar;
26+
27+
}
28+
29+
for(auto &val : vec){
30+
float r = __real__ val;
31+
float i = __imag__ val;
32+
fmt::print("sizeof(val)={}, {:+.1f}{:+.1f}j\n", sizeof(val), r, i);
33+
}
34+
}

0 commit comments

Comments
 (0)