Coverage Report

Created: 2025-10-10 06:31

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/PROJ/src/zpoly1.cpp
Line
Count
Source
1
/* evaluate complex polynomial */
2
#include "proj.h"
3
#include "proj_internal.h"
4
/* note: coefficients are always from C_1 to C_n
5
**  i.e. C_0 == (0., 0)
6
**  n should always be >= 1 though no checks are made
7
*/
8
COMPLEX
9
3.52k
pj_zpoly1(COMPLEX z, const COMPLEX *C, int n) {
10
3.52k
    COMPLEX a;
11
3.52k
    double t;
12
13
3.52k
    a = *(C += n);
14
18.1k
    while (n-- > 0) {
15
14.6k
        a.r = (--C)->r + z.r * (t = a.r) - z.i * a.i;
16
14.6k
        a.i = C->i + z.r * a.i + z.i * t;
17
14.6k
    }
18
3.52k
    a.r = z.r * (t = a.r) - z.i * a.i;
19
3.52k
    a.i = z.r * a.i + z.i * t;
20
3.52k
    return a;
21
3.52k
}
22
/* evaluate complex polynomial and derivative */
23
COMPLEX
24
0
pj_zpolyd1(COMPLEX z, const COMPLEX *C, int n, COMPLEX *der) {
25
0
    COMPLEX a, b;
26
0
    double t;
27
0
    int first = 1;
28
29
0
    a = *(C += n);
30
0
    b = a;
31
0
    while (n-- > 0) {
32
0
        if (first) {
33
0
            first = 0;
34
0
        } else {
35
0
            b.r = a.r + z.r * (t = b.r) - z.i * b.i;
36
0
            b.i = a.i + z.r * b.i + z.i * t;
37
0
        }
38
0
        a.r = (--C)->r + z.r * (t = a.r) - z.i * a.i;
39
0
        a.i = C->i + z.r * a.i + z.i * t;
40
0
    }
41
0
    b.r = a.r + z.r * (t = b.r) - z.i * b.i;
42
0
    b.i = a.i + z.r * b.i + z.i * t;
43
0
    a.r = z.r * (t = a.r) - z.i * a.i;
44
0
    a.i = z.r * a.i + z.i * t;
45
0
    *der = b;
46
0
    return a;
47
0
}