diff --git a/Source/FastMathFunctions/arm_cos_f32.c b/Source/FastMathFunctions/arm_cos_f32.c index e11c47c1..e604b3c6 100644 --- a/Source/FastMathFunctions/arm_cos_f32.c +++ b/Source/FastMathFunctions/arm_cos_f32.c @@ -38,7 +38,7 @@ * Computes the trigonometric cosine function using a combination of table lookup * and linear interpolation. There are separate functions for * Q15, Q31, and floating-point data types. - * The input to the floating-point version is in radians while the + * The input to the floating-point version is in radians and in the range [0 2*pi) while the * fixed-point Q15 and Q31 have a scaled input with the range * [0 +0.9999] mapping to [0 2*pi). The fixed-point range is chosen so that a * value of 2*pi wraps around to 0. diff --git a/Source/FilteringFunctions/arm_conv_partial_f32.c b/Source/FilteringFunctions/arm_conv_partial_f32.c index 60140ff5..f3b15b4a 100644 --- a/Source/FilteringFunctions/arm_conv_partial_f32.c +++ b/Source/FilteringFunctions/arm_conv_partial_f32.c @@ -420,7 +420,14 @@ arm_status arm_conv_partial_f32( count += 4U; /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; + if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) + { + px = pIn1 + firstIndex - srcBLen + 1 + count; + } + else + { + px = pIn1 + count; + } py = pSrc2; /* Decrement the loop counter */ @@ -473,7 +480,14 @@ arm_status arm_conv_partial_f32( count++; /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; + if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) + { + px = pIn1 + firstIndex - srcBLen + 1 + count; + } + else + { + px = pIn1 + count; + } py = pSrc2; /* Decrement the loop counter */ @@ -510,7 +524,14 @@ arm_status arm_conv_partial_f32( count++; /* Update the inputA and inputB pointers for next MAC calculation */ - px = pIn1 + count; + if ((int32_t)firstIndex - (int32_t)srcBLen + 1 > 0) + { + px = pIn1 + firstIndex - srcBLen + 1 + count; + } + else + { + px = pIn1 + count; + } py = pSrc2; /* Decrement the loop counter */