diff --git a/ft8/fft.cpp b/ft8/fft.cpp
index 623a2b4fc..220fad8c4 100644
--- a/ft8/fft.cpp
+++ b/ft8/fft.cpp
@@ -19,7 +19,7 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#include
+// #include
#include
#include "fft.h"
#include "util.h"
@@ -83,9 +83,9 @@ FFTEngine::Plan *FFTEngine::get_plan(int n, const char *why)
p->uses_ = 1;
p->why_ = why;
p->r_ = (float *)fftwf_malloc(n * sizeof(float));
- assert(p->r_);
+ // assert(p->r_);
p->c_ = (fftwf_complex *)fftwf_malloc(((n / 2) + 1) * sizeof(fftwf_complex));
- assert(p->c_);
+ // assert(p->c_);
// FFTW_ESTIMATE
// FFTW_MEASURE
@@ -94,25 +94,25 @@ FFTEngine::Plan *FFTEngine::get_plan(int n, const char *why)
int type = M_FFTW_TYPE;
p->type_ = type;
p->fwd_ = fftwf_plan_dft_r2c_1d(n, p->r_, p->c_, type);
- assert(p->fwd_);
+ // assert(p->fwd_);
p->rev_ = fftwf_plan_dft_c2r_1d(n, p->c_, p->r_, type);
- assert(p->rev_);
+ // assert(p->rev_);
//
// complex -> complex
//
p->cc1_ = (fftwf_complex *)fftwf_malloc(n * sizeof(fftwf_complex));
- assert(p->cc1_);
+ // assert(p->cc1_);
p->cc2_ = (fftwf_complex *)fftwf_malloc(n * sizeof(fftwf_complex));
- assert(p->cc2_);
+ // assert(p->cc2_);
p->cfwd_ = fftwf_plan_dft_1d(n, p->cc1_, p->cc2_, FFTW_FORWARD, type);
- assert(p->cfwd_);
+ // assert(p->cfwd_);
p->crev_ = fftwf_plan_dft_1d(n, p->cc2_, p->cc1_, FFTW_BACKWARD, type);
- assert(p->crev_);
+ // assert(p->crev_);
m_plansmu2.unlock();
- assert(m_nplans + 1 < 1000);
+ // assert(m_nplans + 1 < 1000);
m_plans[m_nplans] = p;
m_nplans += 1;
@@ -144,15 +144,15 @@ std::vector> FFTEngine::one_fft(
FFTEngine::Plan *p
)
{
- assert(i0 >= 0);
- assert(block > 1);
+ // assert(i0 >= 0);
+ // assert(block > 1);
int nsamples = samples.size();
int nbins = (block / 2) + 1;
if (p)
{
- assert(p->n_ == block);
+ // assert(p->n_ == block);
p->uses_ += 1;
}
else
@@ -165,7 +165,7 @@ std::vector> FFTEngine::one_fft(
double t0 = now();
#endif
- assert((int)samples.size() - i0 >= block);
+ // assert((int)samples.size() - i0 >= block);
int m_in_allocated = 0;
float *m_in = (float *)samples.data() + i0;
@@ -174,7 +174,7 @@ std::vector> FFTEngine::one_fft(
{
// m_in must be on a 16-byte boundary for FFTW.
m_in = (float *)fftwf_malloc(sizeof(float) * p->n_);
- assert(m_in);
+ // assert(m_in);
m_in_allocated = 1;
for (int i = 0; i < block; i++)
{
@@ -190,7 +190,7 @@ std::vector> FFTEngine::one_fft(
}
fftwf_complex *m_out = (fftwf_complex *)fftwf_malloc(sizeof(fftwf_complex) * ((p->n_ / 2) + 1));
- assert(m_out);
+ // assert(m_out);
fftwf_execute_dft_r2c(m_plan, m_in, m_out);
@@ -220,8 +220,8 @@ std::vector> FFTEngine::one_fft(
//
FFTEngine::ffts_t FFTEngine::ffts(const std::vector &samples, int i0, int block, const char *why)
{
- assert(i0 >= 0);
- assert(block > 1 && (block % 2) == 0);
+ // assert(i0 >= 0);
+ // assert(block > 1 && (block % 2) == 0);
int nsamples = samples.size();
int nbins = (block / 2) + 1;
@@ -242,7 +242,7 @@ FFTEngine::ffts_t FFTEngine::ffts(const std::vector &samples, int i0, int
// allocate our own b/c using p->m_in and p->m_out isn't thread-safe.
float *m_in = (float *)fftwf_malloc(sizeof(float) * p->n_);
fftwf_complex *m_out = (fftwf_complex *)fftwf_malloc(sizeof(fftwf_complex) * ((p->n_ / 2) + 1));
- assert(m_in && m_out);
+ // assert(m_in && m_out);
// float *m_in = p->r_;
// fftw_complex *m_out = p->c_;
@@ -296,8 +296,8 @@ std::vector> FFTEngine::one_fft_c(
const char *why
)
{
- assert(i0 >= 0);
- assert(block > 1);
+ // assert(i0 >= 0);
+ // assert(block > 1);
int nsamples = samples.size();
@@ -310,7 +310,7 @@ std::vector> FFTEngine::one_fft_c(
fftwf_complex *m_in = (fftwf_complex *)fftwf_malloc(block * sizeof(fftwf_complex));
fftwf_complex *m_out = (fftwf_complex *)fftwf_malloc(block * sizeof(fftwf_complex));
- assert(m_in && m_out);
+ // assert(m_in && m_out);
for (int i = 0; i < block; i++)
{
@@ -356,8 +356,8 @@ std::vector> FFTEngine::one_fft_cc(
const char *why
)
{
- assert(i0 >= 0);
- assert(block > 1);
+ // assert(i0 >= 0);
+ // assert(block > 1);
int nsamples = samples.size();
@@ -370,7 +370,7 @@ std::vector> FFTEngine::one_fft_cc(
fftwf_complex *m_in = (fftwf_complex *)fftwf_malloc(block * sizeof(fftwf_complex));
fftwf_complex *m_out = (fftwf_complex *)fftwf_malloc(block * sizeof(fftwf_complex));
- assert(m_in && m_out);
+ // assert(m_in && m_out);
for (int i = 0; i < block; i++)
{
@@ -426,7 +426,7 @@ std::vector> FFTEngine::one_ifft_cc(
fftwf_complex *m_in = (fftwf_complex *)fftwf_malloc(block * sizeof(fftwf_complex));
fftwf_complex *m_out = (fftwf_complex *)fftwf_malloc(block * sizeof(fftwf_complex));
- assert(m_in && m_out);
+ // assert(m_in && m_out);
for (int bi = 0; bi < block; bi++)
{
@@ -512,7 +512,7 @@ std::vector> FFTEngine::analytic(const std::vector &x
ulong n = x.size();
std::vector> y = one_fft_c(x, 0, n, why);
- assert(y.size() == n);
+ // assert(y.size() == n);
// leave y[0] alone.
// float the first (positive) half of the spectrum.
@@ -553,7 +553,7 @@ std::vector FFTEngine::hilbert_shift(const std::vector &x, float h
{
// y = scipy.signal.hilbert(x)
std::vector> y = analytic(x, "hilbert_shift");
- assert(y.size() == x.size());
+ // assert(y.size() == x.size());
float dt = 1.0 / rate;
int n = x.size();
diff --git a/ft8/ft8.cpp b/ft8/ft8.cpp
index d0f33327d..13f8bf958 100644
--- a/ft8/ft8.cpp
+++ b/ft8/ft8.cpp
@@ -29,7 +29,7 @@
//
#include
-#include
+// #include
#include
#include
#include
@@ -373,8 +373,8 @@ float FT8::one_coarse_strength(const FFTEngine::ffts_t &bins, int bi0, int si0)
{
int costas[] = {3, 1, 4, 0, 6, 5, 2};
- assert(si0 >= 0 && si0 + 72 + 8 <= (int)bins.size());
- assert(bi0 >= 0 && bi0 + 8 <= (int)bins[0].size());
+ // assert(si0 >= 0 && si0 + 72 + 8 <= (int)bins.size());
+ // assert(bi0 >= 0 && bi0 + 8 <= (int)bins[0].size());
float sig = 0.0;
float noise = 0.0;
@@ -486,8 +486,7 @@ float FT8::one_coarse_strength(const FFTEngine::ffts_t &bins, int bi0, int si0)
int FT8::blocksize(int rate)
{
// FT8 symbol length is 1920 at 12000 samples/second.
- int xblock = 1920 / (12000.0 / rate);
- assert(xblock == (int)xblock);
+ int xblock = (1920*rate) / 12000;
int block = xblock;
return block;
}
@@ -561,8 +560,8 @@ std::vector FT8::reduce_rate(
float &delta_hz
)
{
- assert(brate < arate);
- assert(hz1 - hz0 <= brate / 2);
+ // assert(brate < arate);
+ // assert(hz1 - hz0 <= brate / 2);
// the pass band is hz0..hz1
// stop bands are 0..hz00 and hz11..nyquist.
@@ -621,7 +620,7 @@ std::vector FT8::reduce_rate(
int nmid = (brate / 4.0) / bin_hz;
int delta = omid - nmid; // amount to move down
- assert(delta < nbins1);
+ // assert(delta < nbins1);
int blen = round(alen * (brate / (float)arate));
std::vector> bbins(blen / 2 + 1);
for (int i = 0; i < (int)bbins.size(); i++)
@@ -677,7 +676,7 @@ void FT8::go(int npasses)
samples_.resize(nice);
}
- assert(min_hz_ >= 0 && max_hz_ + 50 <= rate_ / 2);
+ // assert(min_hz_ >= 0 && max_hz_ + 50 <= rate_ / 2);
// can we reduce the sample rate?
int nrate = -1;
@@ -742,8 +741,8 @@ void FT8::go(int npasses)
}
}
- assert(max_hz_ + 50 < nrate / 2);
- assert(min_hz_ >= 0);
+ // assert(max_hz_ + 50 < nrate / 2);
+ // assert(min_hz_ >= 0);
float ratio = nrate / (float)rate_;
rate_ = nrate;
@@ -999,7 +998,7 @@ float FT8::one_strength_known(
)
{
int block = blocksize(rate);
- assert(syms.size() == 79);
+ // assert(syms.size() == 79);
int bin0 = round(hz / 6.25);
@@ -1118,7 +1117,7 @@ int FT8::search_time_fine(
}
str = best_sum;
- assert(best_off >= 0);
+ // assert(best_off >= 0);
return off0 + best_off;
}
@@ -1181,7 +1180,7 @@ std::vector FT8::search_both(
int off_win
)
{
- assert(hz0 >= 25 - 6.25 / 2 && hz0 <= 25 + 6.25 / 2);
+ // assert(hz0 >= 25 - 6.25 / 2 && hz0 <= 25 + 6.25 / 2);
std::vector strengths;
@@ -1218,7 +1217,7 @@ void FT8::search_both_known(
float &off_out
)
{
- assert(hz0 >= 0 && hz0 + 50 < rate / 2);
+ // assert(hz0 >= 0 && hz0 + 50 < rate / 2);
int off0 = round(off_secs0 * (float)rate);
@@ -1976,7 +1975,7 @@ void FT8::soft_decode(const FFTEngine::ffts_t &c79, float ll174[])
ll174[lli++] = ll;
}
}
- assert(lli == 174);
+ // assert(lli == 174);
}
//
@@ -2153,7 +2152,7 @@ void FT8::c_soft_decode(const FFTEngine::ffts_t &c79x, float ll174[])
ll174[lli++] = ll;
}
}
- assert(lli == 174);
+ // assert(lli == 174);
}
//
@@ -2168,8 +2167,8 @@ void FT8::c_soft_decode(const FFTEngine::ffts_t &c79x, float ll174[])
//
std::vector FT8::extract_bits(const std::vector &syms, const std::vector str)
{
- assert(syms.size() == 79);
- assert(str.size() == 79);
+ // assert(syms.size() == 79);
+ // assert(str.size() == 79);
std::vector bits;
for (int si = 0; si < 79; si++)
@@ -2323,7 +2322,7 @@ void FT8::soft_decode_pairs(
ll174[lli++] = ll;
}
}
- assert(lli == 174);
+ // assert(lli == 174);
}
void FT8::soft_decode_triples(
@@ -2485,7 +2484,7 @@ void FT8::soft_decode_triples(
ll174[lli++] = ll;
}
}
- assert(lli == 174);
+ // assert(lli == 174);
}
//
@@ -2552,11 +2551,9 @@ std::vector> FT8::fbandpass(
float high_outer // end of transition
)
{
- // assert(low_outer >= 0);
- assert(low_outer <= low_inner);
- assert(low_inner <= high_inner);
- assert(high_inner <= high_outer);
- // assert(high_outer <= bin_hz * bins0.size());
+ // assert(low_outer <= low_inner);
+ // assert(low_inner <= high_inner);
+ // assert(high_inner <= high_outer);
int nbins = bins0.size();
std::vector> bins1(nbins);
@@ -3449,8 +3446,8 @@ std::vector FT8::recode(int a174[])
out79.push_back(sym);
}
}
- assert(out79.size() == 79);
- assert(i174 == 174);
+ // assert(out79.size() == 79);
+ // assert(i174 == 174);
return out79;
}
diff --git a/ft8/libldpc.cpp b/ft8/libldpc.cpp
index e0f1c1611..4c8c6726f 100644
--- a/ft8/libldpc.cpp
+++ b/ft8/libldpc.cpp
@@ -37,7 +37,6 @@
#include
#include
#include
-#include
#include "arrays.h"
// float, long float, __float128
@@ -414,8 +413,9 @@ void gauss_jordan(int rows, int cols, int m[174][2 * 91], int which[91], int *ok
{
*ok = 0;
- assert(rows == 91);
- assert(cols == 174);
+ if ((rows != 91) || (cols != 174)) {
+ return;
+ }
for (int row = 0; row < rows; row++)
{
diff --git a/ft8/unpack.cpp b/ft8/unpack.cpp
index fbc67f252..d01ded9c8 100644
--- a/ft8/unpack.cpp
+++ b/ft8/unpack.cpp
@@ -19,7 +19,6 @@
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
#include
-#include
#include "unpack.h"
#include "unpack0.h"
@@ -42,9 +41,12 @@ int Packing::ihashcall(std::string rawcall, int m)
{
int c = call[i];
const char *p = strchr(chars, c);
- assert(p);
- int j = p - chars;
- x = 38 * x + j;
+
+ if (p)
+ {
+ int j = p - chars;
+ x = 38 * x + j;
+ }
}
x = x * 47055833459LL;
@@ -319,7 +321,10 @@ std::string Packing::unpack_1(int a77[], std::string& call1str, std::string& cal
i += 15;
int i3 = un64(a77, i, 3);
i += 3;
- assert((i3 == 1 || i3 == 2) && i == 77);
+
+ if (!((i3 == 1 || i3 == 2) && i == 77)) {
+ return std::string("");
+ }
call1str = trim(unpackcall(call1));
call2str = trim(unpackcall(call2));
diff --git a/ft8/unpack0.cpp b/ft8/unpack0.cpp
index f781f3995..f13a1a459 100644
--- a/ft8/unpack0.cpp
+++ b/ft8/unpack0.cpp
@@ -32,7 +32,7 @@ boost::multiprecision::int128_t un128(int a77[], int start, int len)
{
boost::multiprecision::int128_t x = 0;
- assert(len < (int)sizeof(x) * 8 && start >= 0 && start + len <= 77);
+ // assert(len < (int)sizeof(x) * 8 && start >= 0 && start + len <= 77);
for (int i = 0; i < len; i++)
{
x <<= 1;
@@ -50,7 +50,7 @@ uint64_t un64(int a77[], int start, int len)
{
uint64_t x = 0;
- assert(len < (int)sizeof(x) * 8 && start >= 0 && start + len <= 63);
+ // assert(len < (int)sizeof(x) * 8 && start >= 0 && start + len <= 63);
for (int i = 0; i < len; i++)
{
x <<= 1;
diff --git a/ft8/util.cpp b/ft8/util.cpp
index 76901ed6c..547d31df9 100644
--- a/ft8/util.cpp
+++ b/ft8/util.cpp
@@ -18,7 +18,6 @@
// You should have received a copy of the GNU General Public License //
// along with this program. If not, see . //
///////////////////////////////////////////////////////////////////////////////////
-#include
#include
#include
#include
@@ -175,7 +174,11 @@ std::vector> gfsk_c(
const std::vector &gwin
)
{
- assert((gwin.size() % 2) == 0);
+ if (!((gwin.size() % 2) == 0))
+ {
+ std::vector> v(symsamples * symbols.size());
+ return v;
+ }
// compute frequency for each symbol.
// generate a spike in the middle of each symbol time;
@@ -251,7 +254,11 @@ std::vector gfsk_r(
const std::vector &gwin
)
{
- assert((gwin.size() % 2) == 0);
+ if (!((gwin.size() % 2) == 0))
+ {
+ std::vector v(symsamples * symbols.size());
+ return v;
+ }
// compute frequency for each symbol.
// generate a spike in the middle of each symbol time;