---
Fuzzer filename: '/src/postgis/fuzzers/geojson_import_fuzzer.cpp'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/postgis/fuzzers/geojson_import_fuzzer.cpp'
      linkageType:     externalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwfree
        - lwgeom_free
        - lwgeom_from_geojson
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:70,19'
          Dst:             lwgeom_from_geojson
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:71,2'
          Dst:             lwgeom_free
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:72,2'
          Dst:             lwfree
    - functionName:    _ZL11debugloggeriPKcP13__va_list_tag
      functionSourceFile: '/src/postgis/fuzzers/geojson_import_fuzzer.cpp'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL14noticereporterPKcP13__va_list_tag
      functionSourceFile: '/src/postgis/fuzzers/geojson_import_fuzzer.cpp'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LLVMFuzzerInitialize
      functionSourceFile: '/src/postgis/fuzzers/geojson_import_fuzzer.cpp'
      linkageType:     externalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ZL11debugloggeriPKcP13__va_list_tag
        - _ZL14noticereporterPKcP13__va_list_tag
        - lwgeom_set_debuglogger
        - lwgeom_set_handlers
        - realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:56,2'
          Dst:             lwgeom_set_handlers
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:56,2'
          Dst:             realloc
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:56,2'
          Dst:             _ZL14noticereporterPKcP13__va_list_tag
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:56,2'
          Dst:             _ZL14noticereporterPKcP13__va_list_tag
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:57,2'
          Dst:             lwgeom_set_debuglogger
        - Src:             'fuzzers/geojson_import_fuzzer.cpp:57,2'
          Dst:             _ZL11debugloggeriPKcP13__va_list_tag
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GEOSCoordSeq_destroy
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:32,2'
          Dst:             __assert_fail
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    86
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GEOSClipByRect
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:37,2'
          Dst:             __assert_fail
    - functionName:    GEOSUnion
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:42,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getDimensions
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:47,2'
          Dst:             __assert_fail
    - functionName:    GEOSPreparedCovers
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:52,2'
          Dst:             __assert_fail
    - functionName:    GEOSPreparedContains
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:57,2'
          Dst:             __assert_fail
    - functionName:    GEOSSymDifference
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:62,2'
          Dst:             __assert_fail
    - functionName:    GEOSUnionCascaded
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:67,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetExteriorRing
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:72,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_setX
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:77,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createLineString
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:82,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getY
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:87,2'
          Dst:             __assert_fail
    - functionName:    GEOSEquals
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:92,2'
          Dst:             __assert_fail
    - functionName:    GEOSRelatePatternMatch
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:97,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createCollection
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:102,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_extractUniquePoints
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:107,2'
          Dst:             __assert_fail
    - functionName:    GEOSNormalize
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:112,2'
          Dst:             __assert_fail
    - functionName:    GEOSVoronoiDiagram
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:117,2'
          Dst:             __assert_fail
    - functionName:    GEOSArea
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:122,2'
          Dst:             __assert_fail
    - functionName:    GEOSLineMerge
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:127,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createPolygon
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:132,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetCentroid
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:137,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_create
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:142,2'
          Dst:             __assert_fail
    - functionName:    GEOSFree
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:147,2'
          Dst:             __assert_fail
    - functionName:    initGEOS
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:152,2'
          Dst:             __assert_fail
    - functionName:    GEOSIntersection
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:157,2'
          Dst:             __assert_fail
    - functionName:    GEOSEnvelope
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:162,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetGeometryN
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:167,2'
          Dst:             __assert_fail
    - functionName:    GEOSSTRtree_insert
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:172,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeomTypeId
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:177,2'
          Dst:             __assert_fail
    - functionName:    GEOSBoundary
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:182,2'
          Dst:             __assert_fail
    - functionName:    GEOSversion
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:187,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetInteriorRingN
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:192,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_setY
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:197,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetSRID
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:202,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_destroy
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    61
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:207,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createEmptyPolygon
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:212,2'
          Dst:             __assert_fail
    - functionName:    GEOSPolygonize
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:217,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getX
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:222,2'
          Dst:             __assert_fail
    - functionName:    GEOSSharedPaths
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:227,2'
          Dst:             __assert_fail
    - functionName:    GEOSSTRtree_create
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:232,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_clone
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:237,2'
          Dst:             __assert_fail
    - functionName:    GEOSRelateBoundaryNodeRule
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:242,2'
          Dst:             __assert_fail
    - functionName:    GEOSSnap
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:247,2'
          Dst:             __assert_fail
    - functionName:    GEOSRelatePattern
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:252,2'
          Dst:             __assert_fail
    - functionName:    GEOSSetSRID
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:257,2'
          Dst:             __assert_fail
    - functionName:    GEOSisValid
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:262,2'
          Dst:             __assert_fail
    - functionName:    GEOSContains
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:267,2'
          Dst:             __assert_fail
    - functionName:    GEOSPreparedGeom_destroy
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:272,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_setZ
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:277,2'
          Dst:             __assert_fail
    - functionName:    GEOSOffsetCurve
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:282,2'
          Dst:             __assert_fail
    - functionName:    GEOSUnaryUnion
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:287,2'
          Dst:             __assert_fail
    - functionName:    GEOSPrepare
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:292,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getSize
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:297,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetNumInteriorRings
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:302,2'
          Dst:             __assert_fail
    - functionName:    GEOSGetNumGeometries
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:307,2'
          Dst:             __assert_fail
    - functionName:    GEOSisSimple
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:312,2'
          Dst:             __assert_fail
    - functionName:    GEOSDifference
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:317,2'
          Dst:             __assert_fail
    - functionName:    GEOSPreparedIntersects
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:322,2'
          Dst:             __assert_fail
    - functionName:    GEOSisEmpty
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:327,2'
          Dst:             __assert_fail
    - functionName:    GEOSPointOnSurface
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:332,2'
          Dst:             __assert_fail
    - functionName:    GEOSSTRtree_query
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:337,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createPoint
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:342,2'
          Dst:             __assert_fail
    - functionName:    GEOSSTRtree_destroy
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:347,2'
          Dst:             __assert_fail
    - functionName:    GEOSIntersects
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:352,2'
          Dst:             __assert_fail
    - functionName:    GEOSHasZ
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:357,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_getCoordSeq
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:362,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getZ
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:367,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createLinearRing
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:372,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeomType
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:377,2'
          Dst:             __assert_fail
    - functionName:    GEOSDelaunayTriangulation
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:382,2'
          Dst:             __assert_fail
    - functionName:    GEOSNode
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:387,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createEmptyPoint
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:392,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_setXY
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:397,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getXY
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:402,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_setXYZ
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:407,2'
          Dst:             __assert_fail
    - functionName:    GEOSCoordSeq_getXYZ
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:412,2'
          Dst:             __assert_fail
    - functionName:    GEOSBuildArea
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:421,2'
          Dst:             __assert_fail
    - functionName:    GEOSMakeValid
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:426,2'
          Dst:             __assert_fail
    - functionName:    GEOSGeom_createPointFromXY
      functionSourceFile: '/src/postgis/fuzzers/geos_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/geos_stub.h:445,2'
          Dst:             __assert_fail
    - functionName:    geod_init
      functionSourceFile: '/src/postgis/fuzzers/proj_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/proj_stub.h:32,2'
          Dst:             __assert_fail
    - functionName:    geod_inverse
      functionSourceFile: '/src/postgis/fuzzers/proj_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/proj_stub.h:37,2'
          Dst:             __assert_fail
    - functionName:    geod_direct
      functionSourceFile: '/src/postgis/fuzzers/proj_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/proj_stub.h:42,2'
          Dst:             __assert_fail
    - functionName:    geod_polygon_init
      functionSourceFile: '/src/postgis/fuzzers/proj_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/proj_stub.h:47,2'
          Dst:             __assert_fail
    - functionName:    geod_polygon_addpoint
      functionSourceFile: '/src/postgis/fuzzers/proj_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/proj_stub.h:52,2'
          Dst:             __assert_fail
    - functionName:    geod_polygon_compute
      functionSourceFile: '/src/postgis/fuzzers/proj_stub.h'
      linkageType:     externalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzzers/proj_stub.h:57,2'
          Dst:             __assert_fail
    - functionName:    snap_to_int
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2610
      functionLinenumberEnd: 2618
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    lwnurbscurve_uniform_knot_value
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_knot_same
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          187
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - lwnurbscurve_uniform_knot_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:88,4'
          Dst:             lwnurbscurve_uniform_knot_value
        - Src:             'lwgeom.c:90,4'
          Dst:             lwnurbscurve_uniform_knot_value
    - functionName:    lwnurbscurve_weight_same
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          147
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_isfinite
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3214
      functionLinenumberEnd: 3236
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          122
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - lwgeom_has_m
        - lwgeom_has_z
        - lwpointiterator_create
        - lwpointiterator_destroy
        - lwpointiterator_has_next
        - lwpointiterator_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:3215,24'
          Dst:             lwpointiterator_create
        - Src:             'lwgeom.c:3216,13'
          Dst:             lwgeom_has_z
        - Src:             'lwgeom.c:3217,13'
          Dst:             lwgeom_has_m
        - Src:             'lwgeom.c:3219,9'
          Dst:             lwpointiterator_has_next
        - Src:             'lwgeom.c:3222,3'
          Dst:             lwpointiterator_next
        - Src:             'lwgeom.c:3230,4'
          Dst:             lwpointiterator_destroy
        - Src:             'lwgeom.c:3234,2'
          Dst:             lwpointiterator_destroy
    - functionName:    lwgeom_has_z
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    44
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_has_m
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_boundary
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3069
      functionLinenumberEnd: 3210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         74
      ICount:          601
      EdgeCount:       89
      CyclomaticComplexity: 17
      functionsReached:
        - getPoint4d
        - getPoint4d_p
        - lwalloc
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwerror
        - lwfree
        - lwgeom_as_lwmpoint
        - lwgeom_boundary
        - lwgeom_clone_deep
        - lwgeom_construct_empty
        - lwgeom_free
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_homogenize
        - lwgeom_is_closed
        - lwgeom_is_empty
        - lwline_construct
        - lwmline_add_lwline
        - lwmline_construct_empty
        - lwmpoint_add_lwpoint
        - lwmpoint_construct_empty
        - lwnurbscurve_evaluate
        - lwpoint_free
        - lwpoint_getPoint4d_p
        - lwpoint_make
        - lwtype_name
        - memcmp
        - ptarray_clone_deep
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom.c:3074,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:3070,17'
          Dst:             lwgeom_get_srid
        - Src:             'lwgeom.c:3071,17'
          Dst:             lwgeom_has_z
        - Src:             'lwgeom.c:3072,17'
          Dst:             lwgeom_has_m
        - Src:             'lwgeom.c:3078,10'
          Dst:             lwgeom_construct_empty
        - Src:             'lwgeom.c:3082,7'
          Dst:             lwgeom_is_closed
        - Src:             'lwgeom.c:3082,35'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:3083,21'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom.c:3087,25'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom.c:3089,4'
          Dst:             getPoint4d_p
        - Src:             'lwgeom.c:3090,35'
          Dst:             lwpoint_make
        - Src:             'lwgeom.c:3090,4'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom.c:3091,4'
          Dst:             getPoint4d_p
        - Src:             'lwgeom.c:3092,35'
          Dst:             lwpoint_make
        - Src:             'lwgeom.c:3092,4'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom.c:3098,7'
          Dst:             lwgeom_is_closed
        - Src:             'lwgeom.c:3098,35'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:3099,21'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom.c:3102,25'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom.c:3104,23'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwgeom.c:3105,23'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwgeom.c:3108,5'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwgeom.c:3109,36'
          Dst:             lwpoint_make
        - Src:             'lwgeom.c:3109,5'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom.c:3110,5'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:3114,5'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwgeom.c:3115,36'
          Dst:             lwpoint_make
        - Src:             'lwgeom.c:3115,5'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom.c:3116,5'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:3124,18'
          Dst:             lwalloc
        - Src:             'lwgeom.c:3129,42'
          Dst:             lwgeom_boundary
        - Src:             'lwgeom.c:3129,23'
          Dst:             lwgeom_as_lwmpoint
        - Src:             'lwgeom.c:3135,18'
          Dst:             getPoint4d
        - Src:             'lwgeom.c:3140,10'
          Dst:             memcmp
        - Src:             'lwgeom.c:3151,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:3154,24'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom.c:3157,35'
          Dst:             lwpoint_make
        - Src:             'lwgeom.c:3157,4'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom.c:3159,3'
          Dst:             lwfree
        - Src:             'lwgeom.c:3165,24'
          Dst:             ptarray_clone_deep
        - Src:             'lwgeom.c:3166,20'
          Dst:             lwline_construct
        - Src:             'lwgeom.c:3171,22'
          Dst:             lwmline_construct_empty
        - Src:             'lwgeom.c:3174,23'
          Dst:             ptarray_clone_deep
        - Src:             'lwgeom.c:3175,32'
          Dst:             lwline_construct
        - Src:             'lwgeom.c:3175,4'
          Dst:             lwmline_add_lwline
        - Src:             'lwgeom.c:3179,19'
          Dst:             lwgeom_homogenize
        - Src:             'lwgeom.c:3180,3'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:3185,25'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom.c:3188,43'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:3188,12'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeom.c:3196,34'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom.c:3199,44'
          Dst:             lwgeom_boundary
        - Src:             'lwgeom.c:3199,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeom.c:3201,19'
          Dst:             lwgeom_homogenize
        - Src:             'lwgeom.c:3202,3'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:3207,58'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:3207,3'
          Dst:             lwerror
    - functionName:    lwgeom_get_srid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1093
      functionLinenumberEnd: 1096
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2538
      functionLinenumberEnd: 2566
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - char
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          132
      EdgeCount:       35
      CyclomaticComplexity: 19
      functionsReached:
        - lwcircstring_as_lwgeom
        - lwcircstring_construct_empty
        - lwcollection_as_lwgeom
        - lwcollection_construct_empty
        - lwcurvepoly_as_lwgeom
        - lwcurvepoly_construct_empty
        - lwerror
        - lwline_as_lwgeom
        - lwline_construct_empty
        - lwnurbscurve_as_lwgeom
        - lwnurbscurve_construct_empty
        - lwpoint_as_lwgeom
        - lwpoint_construct_empty
        - lwpoly_as_lwgeom
        - lwpoly_construct_empty
        - lwtriangle_as_lwgeom
        - lwtriangle_construct_empty
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:2539,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:2542,29'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom.c:2542,11'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeom.c:2544,28'
          Dst:             lwline_construct_empty
        - Src:             'lwgeom.c:2544,11'
          Dst:             lwline_as_lwgeom
        - Src:             'lwgeom.c:2546,28'
          Dst:             lwpoly_construct_empty
        - Src:             'lwgeom.c:2546,11'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwgeom.c:2548,33'
          Dst:             lwcurvepoly_construct_empty
        - Src:             'lwgeom.c:2548,11'
          Dst:             lwcurvepoly_as_lwgeom
        - Src:             'lwgeom.c:2550,34'
          Dst:             lwcircstring_construct_empty
        - Src:             'lwgeom.c:2550,11'
          Dst:             lwcircstring_as_lwgeom
        - Src:             'lwgeom.c:2552,32'
          Dst:             lwtriangle_construct_empty
        - Src:             'lwgeom.c:2552,11'
          Dst:             lwtriangle_as_lwgeom
        - Src:             'lwgeom.c:2558,34'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom.c:2558,11'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwgeom.c:2560,34'
          Dst:             lwnurbscurve_construct_empty
        - Src:             'lwgeom.c:2560,11'
          Dst:             lwnurbscurve_as_lwgeom
        - Src:             'lwgeom.c:2563,12'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2562,4'
          Dst:             lwerror
    - functionName:    lwgeom_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          259
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - lwcircstring_is_closed
        - lwcompound_is_closed
        - lwgeom_as_lwcollection
        - lwgeom_is_closed
        - lwgeom_is_collection
        - lwgeom_is_empty
        - lwline_is_closed
        - lwnurbscurve_evaluate
        - lwpoint_free
        - lwpoint_getPoint4d_p
        - lwpoly_is_closed
        - lwpsurface_is_closed
        - lwtin_is_closed
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lwgeom.c:1226,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1222,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:1229,10'
          Dst:             lwline_is_closed
        - Src:             'lwgeom.c:1231,10'
          Dst:             lwpoly_is_closed
        - Src:             'lwgeom.c:1233,10'
          Dst:             lwcircstring_is_closed
        - Src:             'lwgeom.c:1237,22'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwgeom.c:1238,20'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwgeom.c:1242,7'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwgeom.c:1243,7'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwgeom.c:1251,3'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:1252,3'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:1256,10'
          Dst:             lwcompound_is_closed
        - Src:             'lwgeom.c:1258,10'
          Dst:             lwtin_is_closed
        - Src:             'lwgeom.c:1260,10'
          Dst:             lwpsurface_is_closed
        - Src:             'lwgeom.c:1264,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:1266,23'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom.c:1271,13'
          Dst:             lwgeom_is_closed
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    19
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwgeom_as_lwmpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_free
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1471
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          130
      EdgeCount:       25
      CyclomaticComplexity: 2
      functionsReached:
        - lwcircstring_free
        - lwcollection_free
        - lwerror
        - lwline_free
        - lwmline_free
        - lwmpoint_free
        - lwmpoly_free
        - lwnurbscurve_free
        - lwpoint_free
        - lwpoly_free
        - lwpsurface_free
        - lwtin_free
        - lwtriangle_free
        - lwtype_name
      functionUses:    36
      BranchProfiles:
        - Branch String:   'lwgeom.c:1425,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1428,3'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:1431,3'
          Dst:             lwline_free
        - Src:             'lwgeom.c:1434,3'
          Dst:             lwpoly_free
        - Src:             'lwgeom.c:1437,3'
          Dst:             lwcircstring_free
        - Src:             'lwgeom.c:1440,3'
          Dst:             lwtriangle_free
        - Src:             'lwgeom.c:1443,3'
          Dst:             lwmpoint_free
        - Src:             'lwgeom.c:1446,3'
          Dst:             lwmline_free
        - Src:             'lwgeom.c:1449,3'
          Dst:             lwmpoly_free
        - Src:             'lwgeom.c:1452,3'
          Dst:             lwpsurface_free
        - Src:             'lwgeom.c:1455,3'
          Dst:             lwtin_free
        - Src:             'lwgeom.c:1462,3'
          Dst:             lwcollection_free
        - Src:             'lwgeom.c:1465,3'
          Dst:             lwnurbscurve_free
        - Src:             'lwgeom.c:1468,73'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1468,3'
          Dst:             lwerror
    - functionName:    lwgeom_clone_deep
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          110
      EdgeCount:       45
      CyclomaticComplexity: 24
      functionsReached:
        - lwcollection_clone_deep
        - lwerror
        - lwline_clone_deep
        - lwnurbscurve_clone_deep
        - lwpoly_clone_deep
        - lwtype_name
      functionUses:    37
      BranchProfiles:
        - Branch String:   'lwgeom.c:692,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:698,20'
          Dst:             lwline_clone_deep
        - Src:             'lwgeom.c:700,20'
          Dst:             lwpoly_clone_deep
        - Src:             'lwgeom.c:711,20'
          Dst:             lwcollection_clone_deep
        - Src:             'lwgeom.c:713,20'
          Dst:             lwnurbscurve_clone_deep
        - Src:             'lwgeom.c:715,59'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:715,3'
          Dst:             lwerror
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_is_collection
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwtype_is_collection
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1286,9'
          Dst:             lwtype_is_collection
    - functionName:    lwgeom_as_lwcollection
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_is_collection
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:344,7'
          Dst:             lwgeom_is_collection
    - functionName:    lwtype_is_collection
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1375
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          60
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    10
      BranchProfiles:
        - Branch String:   'lwgeom.c:1357,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwpoint_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcurvepoly_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    trim_preserve_decimal_digits
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3020
      functionLinenumberEnd: 3045
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_trim_bits_in_place
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3048
      functionLinenumberEnd: 3065
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwgeom_has_m
        - lwgeom_has_z
        - lwpointiterator_create_rw
        - lwpointiterator_destroy
        - lwpointiterator_has_next
        - lwpointiterator_modify_next
        - lwpointiterator_peek
        - trim_preserve_decimal_digits
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:3049,24'
          Dst:             lwpointiterator_create_rw
        - Src:             'lwgeom.c:3052,9'
          Dst:             lwpointiterator_has_next
        - Src:             'lwgeom.c:3054,3'
          Dst:             lwpointiterator_peek
        - Src:             'lwgeom.c:3055,9'
          Dst:             trim_preserve_decimal_digits
        - Src:             'lwgeom.c:3056,9'
          Dst:             trim_preserve_decimal_digits
        - Src:             'lwgeom.c:3057,7'
          Dst:             lwgeom_has_z
        - Src:             'lwgeom.c:3058,10'
          Dst:             trim_preserve_decimal_digits
        - Src:             'lwgeom.c:3059,7'
          Dst:             lwgeom_has_m
        - Src:             'lwgeom.c:3060,10'
          Dst:             trim_preserve_decimal_digits
        - Src:             'lwgeom.c:3061,3'
          Dst:             lwpointiterator_modify_next
        - Src:             'lwgeom.c:3064,2'
          Dst:             lwpointiterator_destroy
    - functionName:    lwgeom_is_trajectory
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3005
      functionLinenumberEnd: 3014
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_is_trajectory
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:3010,3'
          Dst:             lwnotice
        - Src:             'lwgeom.c:3013,9'
          Dst:             lwline_is_trajectory
    - functionName:    lwgeom_subdivide
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2997
      functionLinenumberEnd: 2998
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_subdivide_prec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2998,9'
          Dst:             lwgeom_subdivide_prec
    - functionName:    lwgeom_subdivide_prec
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2974
      functionLinenumberEnd: 2993
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwcollection_construct_empty
        - lwcollection_free
        - lwerror
        - lwgeom_dimension
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwgeom_set_srid
        - lwgeom_subdivide_recursive
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2979,65'
          Dst:             lwgeom_has_z
        - Src:             'lwgeom.c:2979,85'
          Dst:             lwgeom_has_m
        - Src:             'lwgeom.c:2979,8'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom.c:2981,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2986,3'
          Dst:             lwcollection_free
        - Src:             'lwgeom.c:2987,3'
          Dst:             lwerror
        - Src:             'lwgeom.c:2990,35'
          Dst:             lwgeom_dimension
        - Src:             'lwgeom.c:2990,2'
          Dst:             lwgeom_subdivide_recursive
        - Src:             'lwgeom.c:2991,2'
          Dst:             lwgeom_set_srid
    - functionName:    lwgeom_dimension
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1609
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          183
      EdgeCount:       36
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
        - lwgeom_dimension
        - lwpsurface_is_closed
        - lwtin_is_closed
        - lwtype_name
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lwgeom.c:1620,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1641,16'
          Dst:             lwtin_is_closed
        - Src:             'lwgeom.c:1647,16'
          Dst:             lwpsurface_is_closed
        - Src:             'lwgeom.c:1657,14'
          Dst:             lwgeom_dimension
        - Src:             'lwgeom.c:1664,21'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1663,3'
          Dst:             lwerror
    - functionName:    lwgeom_subdivide_recursive
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2798
      functionLinenumberEnd: 2970
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - int
        - int
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         105
      ICount:          716
      EdgeCount:       142
      CyclomaticComplexity: 39
      functionsReached:
        - gbox_duplicate
        - getPoint2d_cp
        - lwcollection_add_lwgeom
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_count_vertices
        - lwgeom_dimension
        - lwgeom_free
        - lwgeom_get_bbox
        - lwgeom_intersection_prec
        - lwgeom_is_collection
        - lwgeom_is_empty
        - lwgeom_simplify_in_place
        - lwgeom_subdivide_recursive
        - lwnotice
        - lwpoly_construct_envelope
        - lwtype_name
        - ptarray_signed_area
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2804,23'
          Dst:             lwgeom_get_bbox
        - Src:             'lwgeom.c:2808,2'
          Dst:             lwnotice
        - Src:             'lwgeom.c:2811,2'
          Dst:             gbox_duplicate
        - Src:             'lwgeom.c:2816,59'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2816,3'
          Dst:             lwerror
        - Src:             'lwgeom.c:2821,33'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:2821,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeom.c:2839,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2845,4'
          Dst:             lwgeom_subdivide_recursive
        - Src:             'lwgeom.c:2849,6'
          Dst:             lwgeom_dimension
        - Src:             'lwgeom.c:2860,32'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:2860,3'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeom.c:2864,23'
          Dst:             lwgeom_count_vertices
        - Src:             'lwgeom.c:2873,32'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:2873,3'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeom.c:2895,37'
          Dst:             ptarray_signed_area
        - Src:             'lwgeom.c:2911,10'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:2913,10'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:2923,2'
          Dst:             gbox_duplicate
        - Src:             'lwgeom.c:2924,2'
          Dst:             gbox_duplicate
        - Src:             'lwgeom.c:2947,30'
          Dst:             lwpoly_construct_envelope
        - Src:             'lwgeom.c:2949,21'
          Dst:             lwgeom_intersection_prec
        - Src:             'lwgeom.c:2950,3'
          Dst:             lwgeom_simplify_in_place
        - Src:             'lwgeom.c:2951,3'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:2952,19'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2954,4'
          Dst:             lwgeom_subdivide_recursive
        - Src:             'lwgeom.c:2955,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:2959,30'
          Dst:             lwpoly_construct_envelope
        - Src:             'lwgeom.c:2961,21'
          Dst:             lwgeom_intersection_prec
        - Src:             'lwgeom.c:2962,3'
          Dst:             lwgeom_simplify_in_place
        - Src:             'lwgeom.c:2963,3'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:2964,19'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2966,4'
          Dst:             lwgeom_subdivide_recursive
        - Src:             'lwgeom.c:2967,4'
          Dst:             lwgeom_free
    - functionName:    lwgeom_set_srid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1886
      functionLinenumberEnd: 1902
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_as_lwcollection
        - lwgeom_is_collection
        - lwgeom_set_srid
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1893,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:1896,23'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom.c:1899,4'
          Dst:             lwgeom_set_srid
    - functionName:    lwgeom_get_bbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_add_bbox
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:909,2'
          Dst:             lwgeom_add_bbox
    - functionName:    lwgeom_count_vertices
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1542
      functionLinenumberEnd: 1592
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          150
      EdgeCount:       33
      CyclomaticComplexity: 4
      functionsReached:
        - lwcollection_count_vertices
        - lwerror
        - lwgeom_is_empty
        - lwline_count_vertices
        - lwpoly_count_vertices
        - lwtype_name
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lwgeom.c:1554,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1552,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:1562,12'
          Dst:             lwline_count_vertices
        - Src:             'lwgeom.c:1571,12'
          Dst:             lwpoly_count_vertices
        - Src:             'lwgeom.c:1583,12'
          Dst:             lwcollection_count_vertices
        - Src:             'lwgeom.c:1587,21'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1586,3'
          Dst:             lwerror
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    lwgeom_simplify_in_place
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2100
      functionLinenumberEnd: 2237
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          453
      EdgeCount:       86
      CyclomaticComplexity: 20
      functionsReached:
        - getPoint2d_cp
        - lwerror
        - lwgeom_as_lwtriangle
        - lwgeom_drop_bbox
        - lwgeom_free
        - lwgeom_is_empty
        - lwgeom_simplify_in_place
        - lwtype_name
        - p2d_same
        - ptarray_copy_point
        - ptarray_free
        - ptarray_simplify_in_place
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lwgeom.c:2109,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:2105,3'
          Dst:             lwerror
        - Src:             'lwgeom.c:2118,20'
          Dst:             lwgeom_as_lwtriangle
        - Src:             'lwgeom.c:2120,4'
          Dst:             ptarray_simplify_in_place
        - Src:             'lwgeom.c:2133,4'
          Dst:             ptarray_simplify_in_place
        - Src:             'lwgeom.c:2142,6'
          Dst:             ptarray_copy_point
        - Src:             'lwgeom.c:2153,18'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:2153,40'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:2153,9'
          Dst:             p2d_same
        - Src:             'lwgeom.c:2171,5'
          Dst:             ptarray_simplify_in_place
        - Src:             'lwgeom.c:2182,8'
          Dst:             ptarray_free
        - Src:             'lwgeom.c:2189,7'
          Dst:             ptarray_free
        - Src:             'lwgeom.c:2212,17'
          Dst:             lwgeom_simplify_in_place
        - Src:             'lwgeom.c:2214,8'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2216,6'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:2227,59'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2227,4'
          Dst:             lwerror
        - Src:             'lwgeom.c:2234,3'
          Dst:             lwgeom_drop_bbox
    - functionName:    lwgeom_as_lwtriangle
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_drop_bbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwfree
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:847,22'
          Dst:             lwfree
    - functionName:    lwgeom_add_bbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_new
        - lwgeom_calculate_gbox
        - lwgeom_is_empty
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:861,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:865,17'
          Dst:             gbox_new
        - Src:             'lwgeom.c:866,2'
          Dst:             lwgeom_calculate_gbox
    - functionName:    lwgeom_calculate_gbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_calculate_gbox_cartesian
        - lwgeom_calculate_gbox_geodetic
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:922,10'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeom.c:924,10'
          Dst:             lwgeom_calculate_gbox_cartesian
    - functionName:    lwgeom_grid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2776
      functionLinenumberEnd: 2779
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_clone_deep
        - lwgeom_grid_in_place
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2777,23'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:2778,2'
          Dst:             lwgeom_grid_in_place
    - functionName:    lwgeom_grid_in_place
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2647
      functionLinenumberEnd: 2771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          437
      EdgeCount:       78
      CyclomaticComplexity: 17
      functionsReached:
        - condition_gridspec_scale
        - lwerror
        - lwfree
        - lwgeom_free
        - lwgeom_grid_in_place
        - lwgeom_is_empty
        - lwtype_name
        - ptarray_free
        - ptarray_grid_in_place
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom.c:2653,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:2649,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2651,2'
          Dst:             condition_gridspec_scale
        - Src:             'lwgeom.c:2658,4'
          Dst:             ptarray_grid_in_place
        - Src:             'lwgeom.c:2666,4'
          Dst:             ptarray_grid_in_place
        - Src:             'lwgeom.c:2680,4'
          Dst:             ptarray_grid_in_place
        - Src:             'lwgeom.c:2687,6'
          Dst:             lwfree
        - Src:             'lwgeom.c:2689,6'
          Dst:             lwfree
        - Src:             'lwgeom.c:2705,4'
          Dst:             ptarray_grid_in_place
        - Src:             'lwgeom.c:2711,6'
          Dst:             ptarray_free
        - Src:             'lwgeom.c:2722,5'
          Dst:             ptarray_grid_in_place
        - Src:             'lwgeom.c:2731,6'
          Dst:             ptarray_free
        - Src:             'lwgeom.c:2751,5'
          Dst:             lwgeom_grid_in_place
        - Src:             'lwgeom.c:2754,9'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2756,6'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:2767,12'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2766,4'
          Dst:             lwerror
    - functionName:    condition_gridspec_scale
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2627
      functionLinenumberEnd: 2642
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - snap_to_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2631,19'
          Dst:             snap_to_int
        - Src:             'lwgeom.c:2633,18'
          Dst:             snap_to_int
        - Src:             'lwgeom.c:2638,19'
          Dst:             snap_to_int
        - Src:             'lwgeom.c:2640,18'
          Dst:             snap_to_int
    - functionName:    lwgeom_startpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2570
      functionLinenumberEnd: 2606
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          179
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint4d_p
        - lwcollection_startpoint
        - lwerror
        - lwgeom_is_empty
        - lwnurbscurve_evaluate
        - lwpoint_free
        - lwpoly_startpoint
        - lwtype_name
        - ptarray_startpoint
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lwgeom.c:2574,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:2571,19'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2577,11'
          Dst:             ptarray_startpoint
        - Src:             'lwgeom.c:2581,11'
          Dst:             ptarray_startpoint
        - Src:             'lwgeom.c:2584,21'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwgeom.c:2587,10'
          Dst:             getPoint4d_p
        - Src:             'lwgeom.c:2588,4'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:2592,11'
          Dst:             lwpoly_startpoint
        - Src:             'lwgeom.c:2601,11'
          Dst:             lwcollection_startpoint
        - Src:             'lwgeom.c:2603,64'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2603,4'
          Dst:             lwerror
    - functionName:    lwgeom_scale
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2456
      functionLinenumberEnd: 2513
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          201
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - lwerror
        - lwgeom_is_collection
        - lwgeom_refresh_bbox
        - lwgeom_scale
        - lwtype_name
        - ptarray_scale
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom.c:2460,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:2469,4'
          Dst:             ptarray_scale
        - Src:             'lwgeom.c:2476,5'
          Dst:             ptarray_scale
        - Src:             'lwgeom.c:2483,5'
          Dst:             ptarray_scale
        - Src:             'lwgeom.c:2490,5'
          Dst:             lwgeom_scale
        - Src:             'lwgeom.c:2495,8'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2500,6'
          Dst:             lwgeom_scale
        - Src:             'lwgeom.c:2505,57'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2505,5'
          Dst:             lwerror
        - Src:             'lwgeom.c:2512,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwgeom_refresh_bbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_add_bbox
        - lwgeom_drop_bbox
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:872,2'
          Dst:             lwgeom_drop_bbox
        - Src:             'lwgeom.c:873,2'
          Dst:             lwgeom_add_bbox
    - functionName:    lwgeom_affine
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2383
      functionLinenumberEnd: 2440
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          201
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - lwerror
        - lwgeom_affine
        - lwgeom_is_collection
        - lwgeom_refresh_bbox
        - lwtype_name
        - ptarray_affine
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lwgeom.c:2387,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:2396,4'
          Dst:             ptarray_affine
        - Src:             'lwgeom.c:2403,5'
          Dst:             ptarray_affine
        - Src:             'lwgeom.c:2410,5'
          Dst:             ptarray_affine
        - Src:             'lwgeom.c:2417,5'
          Dst:             lwgeom_affine
        - Src:             'lwgeom.c:2422,8'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2427,6'
          Dst:             lwgeom_affine
        - Src:             'lwgeom.c:2432,58'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2432,5'
          Dst:             lwerror
        - Src:             'lwgeom.c:2439,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwgeom_length_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2352
      functionLinenumberEnd: 2379
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          133
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - lwcircstring_length_2d
        - lwcompound_length_2d
        - lwgeom_is_collection
        - lwgeom_length_2d
        - lwline_free
        - lwline_length_2d
        - lwnurbscurve_to_linestring
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2355,10'
          Dst:             lwline_length_2d
        - Src:             'lwgeom.c:2357,10'
          Dst:             lwcircstring_length_2d
        - Src:             'lwgeom.c:2361,18'
          Dst:             lwnurbscurve_to_linestring
        - Src:             'lwgeom.c:2362,12'
          Dst:             lwline_length_2d
        - Src:             'lwgeom.c:2363,3'
          Dst:             lwline_free
        - Src:             'lwgeom.c:2367,10'
          Dst:             lwcompound_length_2d
        - Src:             'lwgeom.c:2368,37'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2374,14'
          Dst:             lwgeom_length_2d
    - functionName:    lwgeom_length
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2322
      functionLinenumberEnd: 2349
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          124
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - lwcircstring_length
        - lwcompound_length
        - lwgeom_is_collection
        - lwgeom_length
        - lwline_free
        - lwline_length
        - lwnurbscurve_to_linestring
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2325,10'
          Dst:             lwline_length
        - Src:             'lwgeom.c:2327,10'
          Dst:             lwcircstring_length
        - Src:             'lwgeom.c:2331,18'
          Dst:             lwnurbscurve_to_linestring
        - Src:             'lwgeom.c:2332,12'
          Dst:             lwline_length
        - Src:             'lwgeom.c:2333,3'
          Dst:             lwline_free
        - Src:             'lwgeom.c:2337,10'
          Dst:             lwcompound_length
        - Src:             'lwgeom.c:2338,12'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2344,14'
          Dst:             lwgeom_length
    - functionName:    lwgeom_perimeter_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2300
      functionLinenumberEnd: 2319
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - lwcurvepoly_perimeter_2d
        - lwgeom_is_collection
        - lwgeom_perimeter_2d
        - lwpoly_perimeter_2d
        - lwtriangle_perimeter_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2303,10'
          Dst:             lwpoly_perimeter_2d
        - Src:             'lwgeom.c:2305,10'
          Dst:             lwcurvepoly_perimeter_2d
        - Src:             'lwgeom.c:2307,10'
          Dst:             lwtriangle_perimeter_2d
        - Src:             'lwgeom.c:2308,12'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2314,17'
          Dst:             lwgeom_perimeter_2d
    - functionName:    lwgeom_perimeter
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2278
      functionLinenumberEnd: 2297
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - lwcurvepoly_perimeter
        - lwgeom_is_collection
        - lwgeom_perimeter
        - lwpoly_perimeter
        - lwtriangle_perimeter
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2281,10'
          Dst:             lwpoly_perimeter
        - Src:             'lwgeom.c:2283,10'
          Dst:             lwcurvepoly_perimeter
        - Src:             'lwgeom.c:2285,10'
          Dst:             lwtriangle_perimeter
        - Src:             'lwgeom.c:2286,12'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2292,17'
          Dst:             lwgeom_perimeter
    - functionName:    lwgeom_area
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2255
      functionLinenumberEnd: 2275
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - lwcurvepoly_area
        - lwgeom_area
        - lwgeom_is_collection
        - lwpoly_area
        - lwtriangle_area
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2259,10'
          Dst:             lwpoly_area
        - Src:             'lwgeom.c:2261,10'
          Dst:             lwcurvepoly_area
        - Src:             'lwgeom.c:2263,10'
          Dst:             lwtriangle_area
        - Src:             'lwgeom.c:2264,12'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:2270,12'
          Dst:             lwgeom_area
    - functionName:    lwgeom_simplify
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2240
      functionLinenumberEnd: 2249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_clone_deep
        - lwgeom_free
        - lwgeom_is_empty
        - lwgeom_simplify_in_place
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:2241,23'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:2242,2'
          Dst:             lwgeom_simplify_in_place
        - Src:             'lwgeom.c:2243,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2245,3'
          Dst:             lwgeom_free
    - functionName:    distance2d_sqr_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cmp_point_y
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1926
      functionLinenumberEnd: 1939
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint2d_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1930,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:1931,23'
          Dst:             getPoint2d_cp
    - functionName:    cmp_point_x
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1909
      functionLinenumberEnd: 1922
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint2d_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1913,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:1914,23'
          Dst:             getPoint2d_cp
    - functionName:    lwgeom_as_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_swap_ordinates
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1809
      functionLinenumberEnd: 1883
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          258
      EdgeCount:       53
      CyclomaticComplexity: 9
      functionsReached:
        - lwerror
        - lwgeom_as_lwcircstring
        - lwgeom_as_lwline
        - lwgeom_as_lwpoint
        - lwgeom_as_lwtriangle
        - lwgeom_is_empty
        - lwgeom_refresh_bbox
        - lwgeom_swap_ordinates
        - lwtype_name
        - ptarray_swap_ordinates
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:1821,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1814,16'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:1824,26'
          Dst:             lwgeom_as_lwpoint
        - Src:             'lwgeom.c:1824,3'
          Dst:             ptarray_swap_ordinates
        - Src:             'lwgeom.c:1828,26'
          Dst:             lwgeom_as_lwline
        - Src:             'lwgeom.c:1828,3'
          Dst:             ptarray_swap_ordinates
        - Src:             'lwgeom.c:1832,26'
          Dst:             lwgeom_as_lwcircstring
        - Src:             'lwgeom.c:1832,3'
          Dst:             ptarray_swap_ordinates
        - Src:             'lwgeom.c:1839,4'
          Dst:             ptarray_swap_ordinates
        - Src:             'lwgeom.c:1847,4'
          Dst:             ptarray_swap_ordinates
        - Src:             'lwgeom.c:1852,26'
          Dst:             lwgeom_as_lwtriangle
        - Src:             'lwgeom.c:1852,3'
          Dst:             ptarray_swap_ordinates
        - Src:             'lwgeom.c:1868,4'
          Dst:             lwgeom_swap_ordinates
        - Src:             'lwgeom.c:1874,11'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1873,3'
          Dst:             lwerror
        - Src:             'lwgeom.c:1881,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwgeom_as_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwcircstring
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_remove_repeated_points_in_place
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1943
      functionLinenumberEnd: 2093
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         89
      ICount:          634
      EdgeCount:       110
      CyclomaticComplexity: 23
      functionsReached:
        - distance2d_sqr_pt_pt
        - getPoint2d_cp
        - lwerror
        - lwgeom_drop_bbox
        - lwgeom_free
        - lwgeom_is_empty
        - lwgeom_remove_repeated_points_in_place
        - lwpoint_free
        - lwpoint_is_empty
        - lwtype_name
        - ptarray_free
        - ptarray_remove_repeated_points_in_place
        - qsort
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom.c:1945,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1955,3'
          Dst:             ptarray_remove_repeated_points_in_place
        - Src:             'lwgeom.c:1972,4'
          Dst:             ptarray_remove_repeated_points_in_place
        - Src:             'lwgeom.c:1978,5'
          Dst:             ptarray_free
        - Src:             'lwgeom.c:1994,4'
          Dst:             qsort
        - Src:             'lwgeom.c:2000,26'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:2009,27'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:2017,10'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'lwgeom.c:2019,7'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:2029,26'
          Dst:             lwpoint_is_empty
        - Src:             'lwgeom.c:2031,6'
          Dst:             lwpoint_free
        - Src:             'lwgeom.c:2071,25'
          Dst:             lwgeom_remove_repeated_points_in_place
        - Src:             'lwgeom.c:2073,8'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:2075,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:2085,58'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:2085,3'
          Dst:             lwerror
        - Src:             'lwgeom.c:2091,3'
          Dst:             lwgeom_drop_bbox
    - functionName:    qsort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_remove_repeated_points
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1802
      functionLinenumberEnd: 1805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_clone_deep
        - lwgeom_remove_repeated_points_in_place
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1803,16'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:1804,2'
          Dst:             lwgeom_remove_repeated_points_in_place
    - functionName:    lwcollection_dimensionality
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1730
      functionLinenumberEnd: 1739
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_dimensionality
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1735,11'
          Dst:             lwgeom_dimensionality
    - functionName:    lwgeom_dimensionality
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1756
      functionLinenumberEnd: 1799
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          117
      EdgeCount:       51
      CyclomaticComplexity: 27
      functionsReached:
        - lwcollection_dimensionality
        - lwerror
        - lwgeom_is_closed
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:1762,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1786,9'
          Dst:             lwgeom_is_closed
        - Src:             'lwgeom.c:1791,10'
          Dst:             lwcollection_dimensionality
        - Src:             'lwgeom.c:1795,11'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1794,3'
          Dst:             lwerror
    - functionName:    lwgeom_has_srid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1721
      functionLinenumberEnd: 1726
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_count_rings
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1673
      functionLinenumberEnd: 1718
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          162
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
        - lwgeom_count_rings
        - lwgeom_is_empty
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:1680,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1677,16'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:1709,14'
          Dst:             lwgeom_count_rings
        - Src:             'lwgeom.c:1713,70'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1713,3'
          Dst:             lwerror
    - functionName:    lwgeom_needs_bbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1535
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          161
      EdgeCount:       42
      CyclomaticComplexity: 14
      functionsReached:
        - lwgeom_count_vertices
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1500,8'
          Dst:             lwgeom_count_vertices
        - Src:             'lwgeom.c:1526,46'
          Dst:             lwgeom_count_vertices
    - functionName:    lwtype_get_collectiontype
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:1383,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwgeom_has_rings
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          34
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwgeom.c:1335,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwgeom_is_unitary
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1328
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwtype_is_unitary
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:1329,9'
          Dst:             lwtype_is_unitary
    - functionName:    lwtype_is_unitary
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:1292,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwgeom_has_patches
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwgeom.c:1315,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwgeom_longitude_shift
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1174
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          151
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
        - lwgeom_longitude_shift
        - lwtype_name
        - ptarray_longitude_shift
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:1176,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1186,3'
          Dst:             ptarray_longitude_shift
        - Src:             'lwgeom.c:1190,3'
          Dst:             ptarray_longitude_shift
        - Src:             'lwgeom.c:1195,4'
          Dst:             ptarray_longitude_shift
        - Src:             'lwgeom.c:1199,3'
          Dst:             ptarray_longitude_shift
        - Src:             'lwgeom.c:1209,4'
          Dst:             lwgeom_longitude_shift
        - Src:             'lwgeom.c:1213,11'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1212,3'
          Dst:             lwerror
    - functionName:    lwgeom_set_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1130
      functionLinenumberEnd: 1170
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          314
      EdgeCount:       54
      CyclomaticComplexity: 11
      functionsReached:
        - lwerror
        - lwgeom_set_geodetic
        - lwtype_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom.c:1141,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1164,5'
          Dst:             lwgeom_set_geodetic
        - Src:             'lwgeom.c:1167,62'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1167,4'
          Dst:             lwerror
    - functionName:    lwgeom_ndims
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1121
      functionLinenumberEnd: 1124
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_solid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_force_sfs
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1089
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          258
      EdgeCount:       39
      CyclomaticComplexity: 4
      functionsReached:
        - lwcollection_as_lwgeom
        - lwgeom_force_sfs
        - lwgeom_free
        - lwgeom_stroke
        - lwmpoly_as_lwgeom
        - lwpoly_as_lwgeom
        - lwpoly_from_lwlines
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom.c:1023,3'
          Branch Sides:    []
        - Branch String:   'lwgeom.c:1047,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:1031,12'
          Dst:             lwgeom_stroke
        - Src:             'lwgeom.c:1036,22'
          Dst:             lwgeom_force_sfs
        - Src:             'lwgeom.c:1038,12'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwgeom.c:1055,11'
          Dst:             lwgeom_stroke
        - Src:             'lwgeom.c:1059,25'
          Dst:             lwpoly_from_lwlines
        - Src:             'lwgeom.c:1059,8'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwgeom.c:1060,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:1067,26'
          Dst:             lwpoly_from_lwlines
        - Src:             'lwgeom.c:1067,9'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwgeom.c:1068,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom.c:1072,11'
          Dst:             lwmpoly_as_lwgeom
        - Src:             'lwgeom.c:1082,21'
          Dst:             lwgeom_force_sfs
        - Src:             'lwgeom.c:1084,11'
          Dst:             lwcollection_as_lwgeom
    - functionName:    lwmpoly_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_force_4d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_force_dims
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:976,9'
          Dst:             lwgeom_force_dims
    - functionName:    lwgeom_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          154
      EdgeCount:       25
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_as_lwgeom
        - lwcollection_force_dims
        - lwerror
        - lwline_as_lwgeom
        - lwline_force_dims
        - lwnurbscurve_as_lwgeom
        - lwnurbscurve_force_dims
        - lwpoint_as_lwgeom
        - lwpoint_force_dims
        - lwpoly_as_lwgeom
        - lwpoly_force_dims
        - lwtype_name
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lwgeom.c:984,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:987,29'
          Dst:             lwpoint_force_dims
        - Src:             'lwgeom.c:987,11'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeom.c:991,28'
          Dst:             lwline_force_dims
        - Src:             'lwgeom.c:991,11'
          Dst:             lwline_as_lwgeom
        - Src:             'lwgeom.c:993,28'
          Dst:             lwpoly_force_dims
        - Src:             'lwgeom.c:993,11'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwgeom.c:1004,34'
          Dst:             lwcollection_force_dims
        - Src:             'lwgeom.c:1004,11'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwgeom.c:1006,34'
          Dst:             lwnurbscurve_force_dims
        - Src:             'lwgeom.c:1006,11'
          Dst:             lwnurbscurve_as_lwgeom
        - Src:             'lwgeom.c:1008,58'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:1008,4'
          Dst:             lwerror
    - functionName:    lwgeom_force_3dm
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 970
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_force_dims
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:970,9'
          Dst:             lwgeom_force_dims
    - functionName:    lwgeom_force_3dz
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 963
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_force_dims
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:964,9'
          Dst:             lwgeom_force_dims
    - functionName:    lwgeom_force_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_force_dims
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:958,9'
          Dst:             lwgeom_force_dims
    - functionName:    lwgeom_segmentize2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          64
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - lwcollection_segmentize2d
        - lwgeom_clone
        - lwline_segmentize2d
        - lwpoly_segmentize2d
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:936,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:939,20'
          Dst:             lwline_segmentize2d
        - Src:             'lwgeom.c:942,20'
          Dst:             lwpoly_segmentize2d
        - Src:             'lwgeom.c:947,20'
          Dst:             lwcollection_segmentize2d
        - Src:             'lwgeom.c:951,10'
          Dst:             lwgeom_clone
    - functionName:    lwgeom_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          118
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_clone
        - lwcollection_clone
        - lwerror
        - lwline_clone
        - lwnurbscurve_clone_deep
        - lwpoint_clone
        - lwpoly_clone
        - lwtriangle_clone
        - lwtype_name
      functionUses:    10
      BranchProfiles:
        - Branch String:   'lwgeom.c:642,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:645,20'
          Dst:             lwpoint_clone
        - Src:             'lwgeom.c:647,20'
          Dst:             lwline_clone
        - Src:             'lwgeom.c:649,20'
          Dst:             lwcircstring_clone
        - Src:             'lwgeom.c:651,20'
          Dst:             lwnurbscurve_clone_deep
        - Src:             'lwgeom.c:653,20'
          Dst:             lwpoly_clone
        - Src:             'lwgeom.c:655,20'
          Dst:             lwtriangle_clone
        - Src:             'lwgeom.c:666,20'
          Dst:             lwcollection_clone
        - Src:             'lwgeom.c:668,54'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:668,3'
          Dst:             lwerror
    - functionName:    lwgeom_drop_srid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_add_bbox_deep
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 903
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          136
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - gbox_clone
        - gbox_new
        - lwgeom_add_bbox_deep
        - lwgeom_calculate_gbox
        - lwgeom_is_collection
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:879,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:885,18'
          Dst:             gbox_new
        - Src:             'lwgeom.c:886,3'
          Dst:             lwgeom_calculate_gbox
        - Src:             'lwgeom.c:890,18'
          Dst:             gbox_clone
        - Src:             'lwgeom.c:893,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom.c:900,4'
          Dst:             lwgeom_add_bbox_deep
    - functionName:    lwpoint_inside_circle
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - distance2d_pt_pt
        - getPoint2d_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:833,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom.c:838,7'
          Dst:             distance2d_pt_pt
    - functionName:    lwnurbscurve_same
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          115
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - lwnurbscurve_is_empty
        - lwnurbscurve_knot_same
        - lwnurbscurve_weight_same
        - ptarray_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:101,6'
          Dst:             lwnurbscurve_is_empty
        - Src:             'lwgeom.c:101,39'
          Dst:             lwnurbscurve_is_empty
        - Src:             'lwgeom.c:106,45'
          Dst:             ptarray_same
        - Src:             'lwgeom.c:108,7'
          Dst:             lwnurbscurve_weight_same
        - Src:             'lwgeom.c:110,7'
          Dst:             lwnurbscurve_knot_same
    - functionName:    lwgeom_same
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          214
      EdgeCount:       37
      CyclomaticComplexity: 6
      functionsReached:
        - gbox_same
        - lwcircstring_same
        - lwcollection_same
        - lwerror
        - lwline_same
        - lwnurbscurve_same
        - lwpoint_same
        - lwpoly_same
        - lwtriangle_same
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:784,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:775,10'
          Dst:             gbox_same
        - Src:             'lwgeom.c:787,10'
          Dst:             lwpoint_same
        - Src:             'lwgeom.c:790,10'
          Dst:             lwline_same
        - Src:             'lwgeom.c:793,10'
          Dst:             lwpoly_same
        - Src:             'lwgeom.c:796,10'
          Dst:             lwtriangle_same
        - Src:             'lwgeom.c:799,10'
          Dst:             lwcircstring_same
        - Src:             'lwgeom.c:802,10'
          Dst:             lwnurbscurve_same
        - Src:             'lwgeom.c:814,10'
          Dst:             lwcollection_same
        - Src:             'lwgeom.c:818,11'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:817,3'
          Dst:             lwerror
    - functionName:    lwgeom_to_ewkt
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
        - lwgeom_to_wkt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:730,8'
          Dst:             lwgeom_to_wkt
        - Src:             'lwgeom.c:734,3'
          Dst:             lwerror
    - functionName:    lwgeom_release
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
        - lwfree
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:617,3'
          Dst:             lwerror
        - Src:             'lwgeom.c:625,3'
          Dst:             lwfree
        - Src:             'lwgeom.c:627,2'
          Dst:             lwfree
    - functionName:    lwgeom_as_curve
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - lwcompound_construct_from_lwline
        - lwcurvepoly_construct_from_lwpoly
        - lwgeom_as_lwpoly
        - lwgeom_clone
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwgeom.c:576,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:580,21'
          Dst:             lwcompound_construct_from_lwline
        - Src:             'lwgeom.c:583,55'
          Dst:             lwgeom_as_lwpoly
        - Src:             'lwgeom.c:583,21'
          Dst:             lwcurvepoly_construct_from_lwpoly
        - Src:             'lwgeom.c:587,12'
          Dst:             lwgeom_clone
        - Src:             'lwgeom.c:592,12'
          Dst:             lwgeom_clone
        - Src:             'lwgeom.c:597,12'
          Dst:             lwgeom_clone
    - functionName:    lwgeom_as_lwpoly
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_multi
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          209
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - gbox_clone
        - lwalloc
        - lwcollection_clone
        - lwcollection_construct
        - lwcollection_construct_empty
        - lwgeom_clone
        - lwgeom_is_empty
        - lwmpoly_add_lwpoly
        - lwmpoly_as_lwgeom
        - lwmpoly_construct_empty
        - lwpoly_from_lwlines
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:505,21'
          Dst:             lwcollection_clone
        - Src:             'lwgeom.c:519,20'
          Dst:             lwmpoly_construct_empty
        - Src:             'lwgeom.c:525,19'
          Dst:             lwpoly_from_lwlines
        - Src:             'lwgeom.c:526,4'
          Dst:             lwmpoly_add_lwpoly
        - Src:             'lwgeom.c:530,18'
          Dst:             gbox_clone
        - Src:             'lwgeom.c:532,10'
          Dst:             lwmpoly_as_lwgeom
        - Src:             'lwgeom.c:535,34'
          Dst:             lwgeom_clone
        - Src:             'lwgeom.c:537,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom.c:539,21'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom.c:548,12'
          Dst:             lwalloc
        - Src:             'lwgeom.c:549,15'
          Dst:             lwgeom_clone
        - Src:             'lwgeom.c:556,21'
          Dst:             lwcollection_construct
    - functionName:    lwtype_multitype
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcompound_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwmpoint_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwmline_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpsurface_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtin_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwtin
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwpsurface
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwmpoly
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwmline
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwcurvepoly
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwcompound
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_reverse_in_place
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          279
      EdgeCount:       54
      CyclomaticComplexity: 9
      functionsReached:
        - lwerror
        - lwgeom_reverse_in_place
        - lwtype_name
        - ptarray_reverse_in_place
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lwgeom.c:218,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:230,4'
          Dst:             ptarray_reverse_in_place
        - Src:             'lwgeom.c:240,5'
          Dst:             ptarray_reverse_in_place
        - Src:             'lwgeom.c:253,5'
          Dst:             lwgeom_reverse_in_place
        - Src:             'lwgeom.c:274,5'
          Dst:             lwgeom_reverse_in_place
        - Src:             'lwgeom.c:279,55'
          Dst:             lwtype_name
        - Src:             'lwgeom.c:279,4'
          Dst:             lwerror
    - functionName:    lwgeom_reverse
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_clone_deep
        - lwgeom_reverse_in_place
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:204,20'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom.c:205,2'
          Dst:             lwgeom_reverse_in_place
    - functionName:    lwgeom_has_orientation
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_as_lwcollection
        - lwgeom_as_lwpoly
        - lwgeom_as_lwtriangle
        - lwgeom_has_orientation
        - lwpoly_has_orientation
        - lwtriangle_has_orientation
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom.c:175,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:178,34'
          Dst:             lwgeom_as_lwpoly
        - Src:             'lwgeom.c:178,11'
          Dst:             lwpoly_has_orientation
        - Src:             'lwgeom.c:181,38'
          Dst:             lwgeom_as_lwtriangle
        - Src:             'lwgeom.c:181,11'
          Dst:             lwtriangle_has_orientation
        - Src:             'lwgeom.c:186,25'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom.c:189,9'
          Dst:             lwgeom_has_orientation
    - functionName:    lwgeom_force_counterclockwise
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_force_orientation
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:161,9'
          Dst:             lwgeom_force_orientation
    - functionName:    lwgeom_force_orientation
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_as_lwcollection
        - lwgeom_as_lwpoly
        - lwgeom_as_lwtriangle
        - lwgeom_force_orientation
        - lwpoly_force_orientation
        - lwtriangle_force_orientation
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lwgeom.c:127,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom.c:130,29'
          Dst:             lwgeom_as_lwpoly
        - Src:             'lwgeom.c:130,4'
          Dst:             lwpoly_force_orientation
        - Src:             'lwgeom.c:134,33'
          Dst:             lwgeom_as_lwtriangle
        - Src:             'lwgeom.c:134,4'
          Dst:             lwtriangle_force_orientation
        - Src:             'lwgeom.c:142,25'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom.c:145,5'
          Dst:             lwgeom_force_orientation
    - functionName:    lwgeom_force_clockwise
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_force_orientation
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom.c:155,9'
          Dst:             lwgeom_force_orientation
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwpoint_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwpoint_construct
        - lwpoint_construct_empty
        - lwpoint_is_empty
        - ptarray_force_dims
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:310,6'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:312,14'
          Dst:             lwpoint_construct_empty
        - Src:             'lwpoint.c:317,11'
          Dst:             ptarray_force_dims
        - Src:             'lwpoint.c:318,14'
          Dst:             lwpoint_construct
    - functionName:    lwpoint_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_construct
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:153,20'
          Dst:             lwalloc
        - Src:             'lwpoint.c:155,18'
          Dst:             lwflags
        - Src:             'lwpoint.c:157,18'
          Dst:             ptarray_construct
    - functionName:    lwpoint_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          137
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:137,11'
          Dst:             lwalloc
    - functionName:    lwpoint_project
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwpoint_getPoint4d_p
        - lwpoint_make
        - project_pt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:293,13'
          Dst:             lwgeom_get_srid
        - Src:             'lwpoint.c:294,13'
          Dst:             lwgeom_has_z
        - Src:             'lwpoint.c:295,13'
          Dst:             lwgeom_has_m
        - Src:             'lwpoint.c:296,2'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwpoint.c:297,2'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwpoint.c:298,2'
          Dst:             project_pt
        - Src:             'lwpoint.c:299,9'
          Dst:             lwpoint_make
    - functionName:    lwpoint_getPoint4d_p
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwpoint_is_empty
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:59,9'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:59,39'
          Dst:             getPoint4d_p
    - functionName:    lwpoint_make
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:208,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoint.c:209,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoint.c:210,9'
          Dst:             lwpoint_construct
    - functionName:    lwpoint_project_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwpoint_getPoint4d_p
        - lwpoint_make
        - project_pt_pt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:280,13'
          Dst:             lwgeom_get_srid
        - Src:             'lwpoint.c:281,13'
          Dst:             lwgeom_has_z
        - Src:             'lwpoint.c:282,13'
          Dst:             lwgeom_has_m
        - Src:             'lwpoint.c:283,2'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwpoint.c:284,2'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwpoint.c:285,2'
          Dst:             project_pt_pt
        - Src:             'lwpoint.c:286,9'
          Dst:             lwpoint_make
    - functionName:    lwpoint_same2d
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_same2d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:273,9'
          Dst:             ptarray_same2d
    - functionName:    lwpoint_same
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_same
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:266,9'
          Dst:             ptarray_same
    - functionName:    lwpoint_release
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwpoint_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:258,17'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwpoint.c:258,2'
          Dst:             lwgeom_release
    - functionName:    lwpoint_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gbox_copy
        - lwalloc
        - ptarray_clone
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:241,17'
          Dst:             lwalloc
        - Src:             'lwpoint.c:247,15'
          Dst:             ptarray_clone
        - Src:             'lwpoint.c:249,29'
          Dst:             gbox_copy
    - functionName:    printLWPOINT
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:226,2'
          Dst:             lwnotice
        - Src:             'lwpoint.c:227,2'
          Dst:             lwnotice
        - Src:             'lwpoint.c:228,2'
          Dst:             lwnotice
        - Src:             'lwpoint.c:229,2'
          Dst:             lwnotice
        - Src:             'lwpoint.c:230,2'
          Dst:             printPA
        - Src:             'lwpoint.c:231,2'
          Dst:             lwnotice
    - functionName:    lwpoint_free
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwfree
        - ptarray_free
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:218,3'
          Dst:             lwfree
        - Src:             'lwpoint.c:220,3'
          Dst:             ptarray_free
        - Src:             'lwpoint.c:221,2'
          Dst:             lwfree
    - functionName:    lwpoint_make4d
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - double
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:198,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoint.c:200,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoint.c:202,9'
          Dst:             lwpoint_construct
    - functionName:    lwpoint_make3dm
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:187,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoint.c:189,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoint.c:191,9'
          Dst:             lwpoint_construct
    - functionName:    lwpoint_make3dz
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:176,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoint.c:178,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoint.c:180,9'
          Dst:             lwpoint_construct
    - functionName:    lwpoint_make2d
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:166,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoint.c:168,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoint.c:169,9'
          Dst:             lwpoint_construct
    - functionName:    lwpoint_get_m
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d_p
        - lwerror
        - lwpoint_is_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:110,7'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:112,3'
          Dst:             lwerror
        - Src:             'lwpoint.c:117,3'
          Dst:             lwerror
        - Src:             'lwpoint.c:120,2'
          Dst:             getPoint4d_p
    - functionName:    lwpoint_get_z
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d_p
        - lwerror
        - lwpoint_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:92,7'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:94,3'
          Dst:             lwerror
        - Src:             'lwpoint.c:99,3'
          Dst:             lwerror
        - Src:             'lwpoint.c:102,2'
          Dst:             getPoint4d_p
    - functionName:    lwpoint_get_y
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwerror
        - lwpoint_is_empty
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:79,7'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:81,3'
          Dst:             lwerror
        - Src:             'lwpoint.c:84,2'
          Dst:             getPoint4d_p
    - functionName:    lwpoint_get_x
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwerror
        - lwpoint_is_empty
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:66,7'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:68,3'
          Dst:             lwerror
        - Src:             'lwpoint.c:71,2'
          Dst:             getPoint4d_p
    - functionName:    lwpoint_getPoint3dm_p
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint3dm_p
        - lwpoint_is_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:54,9'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:54,39'
          Dst:             getPoint3dm_p
    - functionName:    lwpoint_getPoint3dz_p
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint3dz_p
        - lwpoint_is_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:49,9'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:49,39'
          Dst:             getPoint3dz_p
    - functionName:    lwpoint_getPoint2d_p
      functionSourceFile: '/src/postgis/liblwgeom/lwpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint2d_p
        - lwpoint_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoint.c:42,9'
          Dst:             lwpoint_is_empty
        - Src:             'lwpoint.c:42,39'
          Dst:             getPoint2d_p
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_extend
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          235
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - getPoint4d_p
        - lwerror
        - lwline_construct
        - lwline_count_vertices
        - lwline_is_empty
        - p4d_same
        - project_pt_pt
        - ptarray_append_point
        - ptarray_append_ptarray
        - ptarray_construct_empty
        - ptarray_has_m
        - ptarray_has_z
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:691,3'
          Dst:             lwerror
        - Src:             'lwline.c:693,15'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:693,40'
          Dst:             lwline_count_vertices
        - Src:             'lwline.c:695,3'
          Dst:             lwerror
        - Src:             'lwline.c:703,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:704,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:705,9'
          Dst:             p4d_same
        - Src:             'lwline.c:709,5'
          Dst:             lwerror
        - Src:             'lwline.c:712,4'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:714,3'
          Dst:             project_pt_pt
        - Src:             'lwline.c:722,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:723,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:724,9'
          Dst:             p4d_same
        - Src:             'lwline.c:728,5'
          Dst:             lwerror
        - Src:             'lwline.c:731,4'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:733,3'
          Dst:             project_pt_pt
        - Src:             'lwline.c:737,32'
          Dst:             ptarray_has_z
        - Src:             'lwline.c:737,51'
          Dst:             ptarray_has_m
        - Src:             'lwline.c:737,8'
          Dst:             ptarray_construct_empty
        - Src:             'lwline.c:741,3'
          Dst:             ptarray_append_point
        - Src:             'lwline.c:743,2'
          Dst:             ptarray_append_ptarray
        - Src:             'lwline.c:746,3'
          Dst:             ptarray_append_point
        - Src:             'lwline.c:748,9'
          Dst:             lwline_construct
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_count_vertices
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwalloc
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:44,29'
          Dst:             lwalloc
    - functionName:    lwline_interpolate_point_3d
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          189
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - distance3d_pt_pt
        - getPoint4d_p
        - interpolate_point4d
        - lwgeom_has_m
        - lwgeom_has_z
        - lwline_as_lwgeom
        - lwline_is_empty
        - lwpoint_construct_empty
        - lwpoint_make
        - ptarray_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:621,17'
          Dst:             lwline_as_lwgeom
        - Src:             'lwline.c:622,14'
          Dst:             lwgeom_has_z
        - Src:             'lwline.c:623,14'
          Dst:             lwgeom_has_m
        - Src:             'lwline.c:627,6'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:629,10'
          Dst:             lwpoint_construct_empty
        - Src:             'lwline.c:638,4'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:640,4'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:642,10'
          Dst:             lwpoint_make
        - Src:             'lwline.c:647,11'
          Dst:             ptarray_length
        - Src:             'lwline.c:656,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:657,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:660,13'
          Dst:             distance3d_pt_pt
        - Src:             'lwline.c:669,4'
          Dst:             interpolate_point4d
        - Src:             'lwline.c:670,11'
          Dst:             lwpoint_make
        - Src:             'lwline.c:677,2'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:678,9'
          Dst:             lwpoint_make
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    lwline_interpolate_points
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 612
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          262
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - distance2d_pt_pt
        - getPoint2d_cp
        - getPoint4d
        - getPoint4d_p
        - interpolate_point4d
        - lwgeom_has_m
        - lwgeom_has_z
        - lwline_as_lwgeom
        - lwline_is_empty
        - ptarray_construct
        - ptarray_construct_empty
        - ptarray_length_2d
        - ptarray_set_point4d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:546,35'
          Dst:             lwline_as_lwgeom
        - Src:             'lwline.c:546,22'
          Dst:             lwgeom_has_z
        - Src:             'lwline.c:547,35'
          Dst:             lwline_as_lwgeom
        - Src:             'lwline.c:547,22'
          Dst:             lwgeom_has_m
        - Src:             'lwline.c:552,7'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:554,10'
          Dst:             ptarray_construct_empty
        - Src:             'lwline.c:563,4'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:565,4'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:567,9'
          Dst:             ptarray_construct
        - Src:             'lwline.c:568,3'
          Dst:             ptarray_set_point4d
        - Src:             'lwline.c:574,11'
          Dst:             ptarray_length_2d
        - Src:             'lwline.c:576,8'
          Dst:             ptarray_construct
        - Src:             'lwline.c:578,22'
          Dst:             getPoint2d_cp
        - Src:             'lwline.c:581,23'
          Dst:             getPoint2d_cp
        - Src:             'lwline.c:582,32'
          Dst:             distance2d_pt_pt
        - Src:             'lwline.c:590,20'
          Dst:             getPoint4d
        - Src:             'lwline.c:591,20'
          Dst:             getPoint4d
        - Src:             'lwline.c:594,4'
          Dst:             interpolate_point4d
        - Src:             'lwline.c:595,4'
          Dst:             ptarray_set_point4d
        - Src:             'lwline.c:607,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:608,3'
          Dst:             ptarray_set_point4d
    - functionName:    lwline_length_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_is_empty
        - ptarray_length_2d
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:532,7'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:534,9'
          Dst:             ptarray_length_2d
    - functionName:    lwline_length
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_is_empty
        - ptarray_length
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:525,7'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:527,9'
          Dst:             ptarray_length
    - functionName:    lwline_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          68
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_construct
        - lwline_construct_empty
        - lwline_is_empty
        - ptarray_force_dims
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:502,6'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:504,13'
          Dst:             lwline_construct_empty
        - Src:             'lwline.c:508,11'
          Dst:             ptarray_force_dims
        - Src:             'lwline.c:509,13'
          Dst:             lwline_construct
    - functionName:    lwline_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_construct_empty
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:57,19'
          Dst:             lwalloc
        - Src:             'lwline.c:59,18'
          Dst:             lwflags
        - Src:             'lwline.c:61,19'
          Dst:             ptarray_construct_empty
    - functionName:    lwline_is_trajectory
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint3dm_p
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:468,3'
          Dst:             lwnotice
        - Src:             'lwline.c:481,8'
          Dst:             getPoint3dm_p
        - Src:             'lwline.c:485,4'
          Dst:             lwnotice
    - functionName:    lwline_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_is_closed_2d
        - ptarray_is_closed_3d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:458,10'
          Dst:             ptarray_is_closed_3d
        - Src:             'lwline.c:460,9'
          Dst:             ptarray_is_closed_2d
    - functionName:    lwline_remove_repeated_points
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_remove_repeated_points
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:451,9'
          Dst:             lwgeom_remove_repeated_points
    - functionName:    lwline_measured_from_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          216
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - distance2d_pt_pt
        - getPoint3dz_p
        - lwerror
        - lwline_construct
        - ptarray_construct
        - ptarray_length_2d
        - ptarray_set_point4d
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:403,3'
          Dst:             lwerror
        - Src:             'lwline.c:414,12'
          Dst:             ptarray_length_2d
        - Src:             'lwline.c:415,3'
          Dst:             getPoint3dz_p
        - Src:             'lwline.c:418,7'
          Dst:             ptarray_construct
        - Src:             'lwline.c:424,3'
          Dst:             getPoint3dz_p
        - Src:             'lwline.c:429,20'
          Dst:             distance2d_pt_pt
        - Src:             'lwline.c:441,3'
          Dst:             ptarray_set_point4d
        - Src:             'lwline.c:445,9'
          Dst:             lwline_construct
    - functionName:    lwline_setPoint4d
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_refresh_bbox
        - ptarray_set_point4d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:376,2'
          Dst:             ptarray_set_point4d
        - Src:             'lwline.c:380,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwline_removepoint
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_add_bbox
        - lwline_construct
        - ptarray_removePoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:362,10'
          Dst:             ptarray_removePoint
        - Src:             'lwline.c:364,8'
          Dst:             lwline_construct
        - Src:             'lwline.c:365,2'
          Dst:             lwgeom_add_bbox
    - functionName:    lwline_add_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d_p
        - lwgeom_refresh_bbox
        - ptarray_insert_point
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:340,2'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:342,7'
          Dst:             ptarray_insert_point
        - Src:             'lwline.c:348,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwline_get_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d
        - lwline_is_empty
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:325,7'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:328,7'
          Dst:             ptarray_construct_empty
        - Src:             'lwline.c:329,7'
          Dst:             getPoint4d
        - Src:             'lwline.c:330,2'
          Dst:             ptarray_append_point
        - Src:             'lwline.c:331,12'
          Dst:             lwpoint_construct
    - functionName:    lwline_from_lwmpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          94
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d_p
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwline_construct
        - lwline_construct_empty
        - ptarray_construct
        - ptarray_set_point4d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:292,14'
          Dst:             lwgeom_has_z
        - Src:             'lwline.c:293,14'
          Dst:             lwgeom_has_m
        - Src:             'lwline.c:296,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwline.c:298,10'
          Dst:             lwline_construct_empty
        - Src:             'lwline.c:301,7'
          Dst:             ptarray_construct
        - Src:             'lwline.c:305,3'
          Dst:             getPoint4d_p
        - Src:             'lwline.c:306,3'
          Dst:             ptarray_set_point4d
        - Src:             'lwline.c:311,9'
          Dst:             lwline_construct
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    3
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwline_from_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          209
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - lwerror
        - lwline_construct
        - lwline_construct_empty
        - lwpoint_getPoint4d_p
        - lwpoint_is_empty
        - lwtype_name
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:254,59'
          Dst:             lwtype_name
        - Src:             'lwline.c:254,4'
          Dst:             lwerror
        - Src:             'lwline.c:262,7'
          Dst:             ptarray_construct_empty
        - Src:             'lwline.c:266,10'
          Dst:             lwpoint_is_empty
        - Src:             'lwline.c:268,4'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwline.c:269,4'
          Dst:             ptarray_append_point
        - Src:             'lwline.c:274,10'
          Dst:             lwline_construct
        - Src:             'lwline.c:276,10'
          Dst:             lwline_construct_empty
    - functionName:    lwline_from_lwgeom_array
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          304
      EdgeCount:       65
      CyclomaticComplexity: 17
      functionsReached:
        - lwerror
        - lwgeom_as_lwmline
        - lwgeom_is_empty
        - lwline_construct
        - lwline_construct_empty
        - lwline_is_empty
        - lwpoint_getPoint4d_p
        - lwpointiterator_create
        - lwpointiterator_destroy
        - lwpointiterator_next
        - lwtype_name
        - ptarray_append_point
        - ptarray_append_ptarray
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:174,7'
          Dst:             ptarray_construct_empty
        - Src:             'lwline.c:180,8'
          Dst:             lwgeom_is_empty
        - Src:             'lwline.c:184,4'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwline.c:185,4'
          Dst:             ptarray_append_point
        - Src:             'lwline.c:193,4'
          Dst:             ptarray_append_ptarray
        - Src:             'lwline.c:197,21'
          Dst:             lwgeom_as_lwmline
        - Src:             'lwline.c:201,9'
          Dst:             lwline_is_empty
        - Src:             'lwline.c:202,5'
          Dst:             ptarray_append_ptarray
        - Src:             'lwline.c:207,9'
          Dst:             lwpointiterator_create
        - Src:             'lwline.c:208,10'
          Dst:             lwpointiterator_next
        - Src:             'lwline.c:210,5'
          Dst:             ptarray_append_point
        - Src:             'lwline.c:212,4'
          Dst:             lwpointiterator_destroy
        - Src:             'lwline.c:216,4'
          Dst:             ptarray_free
        - Src:             'lwline.c:217,59'
          Dst:             lwtype_name
        - Src:             'lwline.c:217,4'
          Dst:             lwerror
        - Src:             'lwline.c:223,10'
          Dst:             lwline_construct
        - Src:             'lwline.c:226,3'
          Dst:             ptarray_free
        - Src:             'lwline.c:227,10'
          Dst:             lwline_construct_empty
    - functionName:    lwline_same
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:143,9'
          Dst:             ptarray_same
    - functionName:    lwline_segmentize2d
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_construct
        - ptarray_segmentize2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:134,28'
          Dst:             ptarray_segmentize2d
        - Src:             'lwline.c:136,9'
          Dst:             lwline_construct
    - functionName:    lwline_release
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwline_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:127,17'
          Dst:             lwline_as_lwgeom
        - Src:             'lwline.c:127,2'
          Dst:             lwgeom_release
    - functionName:    lwline_clone_deep
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_copy
        - lwalloc
        - ptarray_clone_deep
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:111,16'
          Dst:             lwalloc
        - Src:             'lwline.c:116,29'
          Dst:             gbox_copy
        - Src:             'lwline.c:117,33'
          Dst:             ptarray_clone_deep
    - functionName:    lwline_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gbox_copy
        - lwalloc
        - ptarray_clone
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:95,16'
          Dst:             lwalloc
        - Src:             'lwline.c:101,16'
          Dst:             ptarray_clone
        - Src:             'lwline.c:103,29'
          Dst:             gbox_copy
    - functionName:    printLWLINE
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:81,2'
          Dst:             lwnotice
        - Src:             'lwline.c:82,2'
          Dst:             lwnotice
        - Src:             'lwline.c:83,2'
          Dst:             lwnotice
        - Src:             'lwline.c:84,2'
          Dst:             printPA
        - Src:             'lwline.c:85,2'
          Dst:             lwnotice
    - functionName:    lwline_free
      functionSourceFile: '/src/postgis/liblwgeom/lwline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwfree
        - ptarray_free
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lwline.c:72,3'
          Dst:             lwfree
        - Src:             'lwline.c:74,3'
          Dst:             ptarray_free
        - Src:             'lwline.c:75,2'
          Dst:             lwfree
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwpoly_contains_point
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          97
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - lwpoly_is_empty
        - ptarray_contains_point
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:536,7'
          Dst:             lwpoly_is_empty
        - Src:             'lwpoly.c:539,6'
          Dst:             ptarray_contains_point
        - Src:             'lwpoly.c:545,8'
          Dst:             ptarray_contains_point
    - functionName:    lwpoly_startpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_startpoint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:527,9'
          Dst:             ptarray_startpoint
    - functionName:    lwpoly_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - ptarray_is_closed_2d
        - ptarray_is_closed_3d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:509,11'
          Dst:             ptarray_is_closed_3d
        - Src:             'lwpoly.c:514,11'
          Dst:             ptarray_is_closed_2d
    - functionName:    lwpoly_perimeter_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_length_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:492,13'
          Dst:             ptarray_length_2d
    - functionName:    lwpoly_perimeter
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:474,13'
          Dst:             ptarray_length
    - functionName:    lwpoly_area
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwerror
        - ptarray_signed_area
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:439,3'
          Dst:             lwerror
        - Src:             'lwpoly.c:450,19'
          Dst:             ptarray_signed_area
    - functionName:    lwpoly_count_vertices
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          104
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwalloc
        - lwpoly_construct
        - lwpoly_construct_empty
        - lwpoly_is_empty
        - ptarray_force_dims
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:398,6'
          Dst:             lwpoly_is_empty
        - Src:             'lwpoly.c:400,13'
          Dst:             lwpoly_construct_empty
        - Src:             'lwpoly.c:406,11'
          Dst:             lwalloc
        - Src:             'lwpoly.c:409,15'
          Dst:             ptarray_force_dims
        - Src:             'lwpoly.c:411,13'
          Dst:             lwpoly_construct
    - functionName:    lwpoly_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:163,19'
          Dst:             lwalloc
        - Src:             'lwpoly.c:165,18'
          Dst:             lwflags
        - Src:             'lwpoly.c:169,18'
          Dst:             lwalloc
    - functionName:    lwpoly_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          193
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
        - lwerror
        - lwflags
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:52,20'
          Dst:             lwerror
        - Src:             'lwpoly.c:62,4'
          Dst:             lwerror
        - Src:             'lwpoly.c:66,21'
          Dst:             lwalloc
        - Src:             'lwpoly.c:68,18'
          Dst:             lwflags
    - functionName:    lwpoly_from_lwlines
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          161
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
        - lwerror
        - lwpoly_construct
        - ptarray_clone_deep
        - ptarray_is_closed_2d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:363,23'
          Dst:             lwalloc
        - Src:             'lwpoly.c:368,3'
          Dst:             lwerror
        - Src:             'lwpoly.c:369,9'
          Dst:             ptarray_is_closed_2d
        - Src:             'lwpoly.c:370,3'
          Dst:             lwerror
        - Src:             'lwpoly.c:371,13'
          Dst:             ptarray_clone_deep
        - Src:             'lwpoly.c:378,4'
          Dst:             lwerror
        - Src:             'lwpoly.c:381,4'
          Dst:             lwerror
        - Src:             'lwpoly.c:382,10'
          Dst:             ptarray_is_closed_2d
        - Src:             'lwpoly.c:383,4'
          Dst:             lwerror
        - Src:             'lwpoly.c:385,19'
          Dst:             ptarray_clone_deep
        - Src:             'lwpoly.c:388,8'
          Dst:             lwpoly_construct
    - functionName:    lwpoly_same
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ptarray_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:345,10'
          Dst:             ptarray_same
    - functionName:    lwpoly_segmentize2d
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          107
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - lwalloc
        - lwfree
        - lwpoly_construct
        - ptarray_free
        - ptarray_segmentize2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:316,13'
          Dst:             lwalloc
        - Src:             'lwpoly.c:319,17'
          Dst:             ptarray_segmentize2d
        - Src:             'lwpoly.c:324,5'
          Dst:             ptarray_free
        - Src:             'lwpoly.c:325,4'
          Dst:             lwfree
        - Src:             'lwpoly.c:329,9'
          Dst:             lwpoly_construct
    - functionName:    lwpoly_release
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwpoly_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:307,17'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwpoly.c:307,2'
          Dst:             lwgeom_release
    - functionName:    lwpoly_has_orientation
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - lwpoly_is_empty
        - ptarray_has_orientation
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:289,6'
          Dst:             lwpoly_is_empty
        - Src:             'lwpoly.c:293,6'
          Dst:             ptarray_has_orientation
        - Src:             'lwpoly.c:298,8'
          Dst:             ptarray_has_orientation
    - functionName:    lwpoly_force_orientation
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - lwpoly_is_empty
        - ptarray_has_orientation
        - ptarray_reverse_in_place
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:274,6'
          Dst:             lwpoly_is_empty
        - Src:             'lwpoly.c:277,7'
          Dst:             ptarray_has_orientation
        - Src:             'lwpoly.c:278,3'
          Dst:             ptarray_reverse_in_place
        - Src:             'lwpoly.c:282,8'
          Dst:             ptarray_has_orientation
        - Src:             'lwpoly.c:283,4'
          Dst:             ptarray_reverse_in_place
    - functionName:    lwpoly_clone_deep
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          94
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_copy
        - lwalloc
        - ptarray_clone_deep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:231,16'
          Dst:             lwalloc
        - Src:             'lwpoly.c:233,29'
          Dst:             gbox_copy
        - Src:             'lwpoly.c:234,15'
          Dst:             lwalloc
        - Src:             'lwpoly.c:237,19'
          Dst:             ptarray_clone_deep
    - functionName:    lwpoly_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_copy
        - lwalloc
        - ptarray_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:216,16'
          Dst:             lwalloc
        - Src:             'lwpoly.c:218,15'
          Dst:             lwalloc
        - Src:             'lwpoly.c:220,19'
          Dst:             ptarray_clone
        - Src:             'lwpoly.c:222,29'
          Dst:             gbox_copy
    - functionName:    printLWPOLY
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          68
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:196,2'
          Dst:             lwnotice
        - Src:             'lwpoly.c:197,2'
          Dst:             lwnotice
        - Src:             'lwpoly.c:198,2'
          Dst:             lwnotice
        - Src:             'lwpoly.c:199,2'
          Dst:             lwnotice
        - Src:             'lwpoly.c:202,3'
          Dst:             lwnotice
        - Src:             'lwpoly.c:203,3'
          Dst:             printPA
        - Src:             'lwpoly.c:205,2'
          Dst:             lwnotice
    - functionName:    lwpoly_free
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - lwfree
        - ptarray_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:181,18'
          Dst:             lwfree
        - Src:             'lwpoly.c:186,24'
          Dst:             ptarray_free
        - Src:             'lwpoly.c:187,3'
          Dst:             lwfree
        - Src:             'lwpoly.c:190,2'
          Dst:             lwfree
    - functionName:    lwpoly_construct_circle
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - double
        - double
        - double
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          131
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwerror
        - lwpoly_add_ring
        - lwpoly_construct_empty
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:131,3'
          Dst:             lwerror
        - Src:             'lwpoly.c:137,3'
          Dst:             lwerror
        - Src:             'lwpoly.c:143,11'
          Dst:             lwpoly_construct_empty
        - Src:             'lwpoly.c:144,7'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoly.c:153,3'
          Dst:             ptarray_append_point
        - Src:             'lwpoly.c:156,2'
          Dst:             lwpoly_add_ring
    - functionName:    lwpoly_add_ring
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwrealloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:256,17'
          Dst:             lwrealloc
    - functionName:    lwpoly_construct_envelope
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - double
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          60
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_add_bbox
        - lwgeom_set_srid
        - lwpoly_as_lwgeom
        - lwpoly_construct_rectangle
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:112,9'
          Dst:             lwpoly_construct_rectangle
        - Src:             'lwpoly.c:113,18'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwpoly.c:113,2'
          Dst:             lwgeom_set_srid
        - Src:             'lwpoly.c:114,18'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwpoly.c:114,2'
          Dst:             lwgeom_add_bbox
    - functionName:    lwpoly_construct_rectangle
      functionSourceFile: '/src/postgis/liblwgeom/lwpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - char
        - char
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpoly_add_ring
        - lwpoly_construct_empty
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpoly.c:83,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwpoly.c:84,19'
          Dst:             lwpoly_construct_empty
        - Src:             'lwpoly.c:86,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoly.c:87,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoly.c:88,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoly.c:89,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoly.c:90,2'
          Dst:             ptarray_append_point
        - Src:             'lwpoly.c:92,2'
          Dst:             lwpoly_add_ring
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwtriangle_perimeter_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_length_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:213,10'
          Dst:             ptarray_length_2d
    - functionName:    lwtriangle_perimeter
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:204,10'
          Dst:             ptarray_length
    - functionName:    lwtriangle_area
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_p
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:189,3'
          Dst:             getPoint2d_p
        - Src:             'lwtriangle.c:190,3'
          Dst:             getPoint2d_p
    - functionName:    lwtriangle_is_repeated_points
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_free
        - ptarray_remove_repeated_points
        - ptarray_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:139,7'
          Dst:             ptarray_remove_repeated_points
        - Src:             'lwtriangle.c:140,8'
          Dst:             ptarray_same
        - Src:             'lwtriangle.c:141,2'
          Dst:             ptarray_free
    - functionName:    lwtriangle_from_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          114
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - lwerror
        - lwtriangle_construct
        - lwtriangle_is_repeated_points
        - ptarray_clone_deep
        - ptarray_is_closed_2d
        - ptarray_is_closed_3d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:159,3'
          Dst:             lwerror
        - Src:             'lwtriangle.c:161,41'
          Dst:             ptarray_is_closed_2d
        - Src:             'lwtriangle.c:162,41'
          Dst:             ptarray_is_closed_3d
        - Src:             'lwtriangle.c:163,3'
          Dst:             lwerror
        - Src:             'lwtriangle.c:165,7'
          Dst:             ptarray_clone_deep
        - Src:             'lwtriangle.c:166,8'
          Dst:             lwtriangle_construct
        - Src:             'lwtriangle.c:168,6'
          Dst:             lwtriangle_is_repeated_points
        - Src:             'lwtriangle.c:169,3'
          Dst:             lwerror
    - functionName:    lwtriangle_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:44,25'
          Dst:             lwalloc
    - functionName:    lwtriangle_same
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:128,11'
          Dst:             ptarray_same
    - functionName:    lwtriangle_release
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwtriangle_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:121,17'
          Dst:             lwtriangle_as_lwgeom
        - Src:             'lwtriangle.c:121,2'
          Dst:             lwgeom_release
    - functionName:    lwtriangle_force_orientation
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwtriangle_has_orientation
        - ptarray_reverse_in_place
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:114,7'
          Dst:             lwtriangle_has_orientation
        - Src:             'lwtriangle.c:115,3'
          Dst:             ptarray_reverse_in_place
    - functionName:    lwtriangle_has_orientation
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_has_orientation
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:108,9'
          Dst:             ptarray_has_orientation
    - functionName:    lwtriangle_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwline_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:102,23'
          Dst:             lwline_clone
    - functionName:    printLWTRIANGLE
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:85,17'
          Dst:             lwerror
        - Src:             'lwtriangle.c:87,2'
          Dst:             lwnotice
        - Src:             'lwtriangle.c:88,2'
          Dst:             lwnotice
        - Src:             'lwtriangle.c:89,2'
          Dst:             lwnotice
        - Src:             'lwtriangle.c:90,2'
          Dst:             printPA
        - Src:             'lwtriangle.c:91,2'
          Dst:             lwnotice
    - functionName:    lwtriangle_free
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwfree
        - ptarray_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:74,3'
          Dst:             lwfree
        - Src:             'lwtriangle.c:77,3'
          Dst:             ptarray_free
        - Src:             'lwtriangle.c:79,2'
          Dst:             lwfree
    - functionName:    lwtriangle_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwtriangle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtriangle.c:60,23'
          Dst:             lwalloc
        - Src:             'lwtriangle.c:62,18'
          Dst:             lwflags
        - Src:             'lwtriangle.c:64,19'
          Dst:             ptarray_construct_empty
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwmpoint_from_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_has_m
        - lwgeom_has_z
        - lwmpoint_add_lwpoint
        - lwmpoint_construct_empty
        - lwpoint_make
        - lwpointiterator_create
        - lwpointiterator_destroy
        - lwpointiterator_next
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoint.c:95,24'
          Dst:             lwpointiterator_create
        - Src:             'lwmpoint.c:96,14'
          Dst:             lwgeom_has_z
        - Src:             'lwmpoint.c:97,14'
          Dst:             lwgeom_has_m
        - Src:             'lwmpoint.c:98,21'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwmpoint.c:101,8'
          Dst:             lwpointiterator_next
        - Src:             'lwmpoint.c:102,18'
          Dst:             lwpoint_make
        - Src:             'lwmpoint.c:103,3'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwmpoint.c:106,2'
          Dst:             lwpointiterator_destroy
    - functionName:    lwmpoint_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_construct_empty
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoint.c:41,29'
          Dst:             lwcollection_construct_empty
    - functionName:    lwmpoint_add_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_add_lwgeom
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoint.c:48,20'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwmpoint_free
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwfree
        - lwpoint_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoint.c:79,3'
          Dst:             lwfree
        - Src:             'lwmpoint.c:83,4'
          Dst:             lwpoint_free
        - Src:             'lwmpoint.c:86,3'
          Dst:             lwfree
        - Src:             'lwmpoint.c:88,2'
          Dst:             lwfree
    - functionName:    lwmpoint_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwcollection_construct_empty
        - lwmpoint_add_lwpoint
        - lwpoint_make
        - ptarray_has_m
        - ptarray_has_z
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoint.c:55,13'
          Dst:             ptarray_has_z
        - Src:             'lwmpoint.c:56,13'
          Dst:             ptarray_has_m
        - Src:             'lwmpoint.c:57,29'
          Dst:             lwcollection_construct_empty
        - Src:             'lwmpoint.c:63,3'
          Dst:             getPoint4d_p
        - Src:             'lwmpoint.c:64,9'
          Dst:             lwpoint_make
        - Src:             'lwmpoint.c:65,3'
          Dst:             lwmpoint_add_lwpoint
    - functionName:    lwmpoint_release
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwmpoint_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoint.c:35,17'
          Dst:             lwmpoint_as_lwgeom
        - Src:             'lwmpoint.c:35,2'
          Dst:             lwgeom_release
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwmline_free
      functionSourceFile: '/src/postgis/liblwgeom/lwmline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - lwfree
        - lwline_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmline.c:118,3'
          Dst:             lwfree
        - Src:             'lwmline.c:124,5'
          Dst:             lwline_free
        - Src:             'lwmline.c:125,3'
          Dst:             lwfree
        - Src:             'lwmline.c:128,2'
          Dst:             lwfree
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwmline_measured_from_lwmline
      functionSourceFile: '/src/postgis/liblwgeom/lwmline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          246
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwcollection_construct_empty
        - lwerror
        - lwgeom_is_empty
        - lwline_measured_from_lwline
        - ptarray_length_2d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmline.c:66,3'
          Dst:             lwerror
        - Src:             'lwmline.c:79,14'
          Dst:             ptarray_length_2d
        - Src:             'lwmline.c:83,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwmline.c:85,20'
          Dst:             lwcollection_construct_empty
        - Src:             'lwmline.c:88,10'
          Dst:             lwalloc
        - Src:             'lwmline.c:98,17'
          Dst:             ptarray_length_2d
        - Src:             'lwmline.c:104,23'
          Dst:             lwline_measured_from_lwline
        - Src:             'lwmline.c:109,19'
          Dst:             lwcollection_construct
    - functionName:    lwmline_add_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwmline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_add_lwgeom
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmline.c:48,19'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwmline_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwmline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_construct_empty
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmline.c:40,27'
          Dst:             lwcollection_construct_empty
    - functionName:    lwmline_release
      functionSourceFile: '/src/postgis/liblwgeom/lwmline.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwmline_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmline.c:34,17'
          Dst:             lwmline_as_lwgeom
        - Src:             'lwmline.c:34,2'
          Dst:             lwgeom_release
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwmpoly_free
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwfree
        - lwpoly_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoly.c:58,3'
          Dst:             lwfree
        - Src:             'lwmpoly.c:62,4'
          Dst:             lwpoly_free
        - Src:             'lwmpoly.c:65,3'
          Dst:             lwfree
        - Src:             'lwmpoly.c:67,2'
          Dst:             lwfree
    - functionName:    lwmpoly_add_lwpoly
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_add_lwgeom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoly.c:49,19'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwmpoly_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoly.c:42,27'
          Dst:             lwcollection_construct_empty
    - functionName:    lwmpoly_release
      functionSourceFile: '/src/postgis/liblwgeom/lwmpoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_release
        - lwmpoly_as_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwmpoly.c:36,17'
          Dst:             lwmpoly_as_lwgeom
        - Src:             'lwmpoly.c:36,2'
          Dst:             lwgeom_release
    - functionName:    lwgeom_get_type
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwcollection_startpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_startpoint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:557,9'
          Dst:             lwgeom_startpoint
    - functionName:    lwcollection_count_vertices
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_count_vertices
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:507,8'
          Dst:             lwgeom_count_vertices
    - functionName:    lwcollection_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          104
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwcollection_construct_empty
        - lwcollection_is_empty
        - lwgeom_force_dims
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:481,6'
          Dst:             lwcollection_is_empty
        - Src:             'lwcollection.c:483,12'
          Dst:             lwcollection_construct_empty
        - Src:             'lwcollection.c:489,11'
          Dst:             lwalloc
        - Src:             'lwcollection.c:492,15'
          Dst:             lwgeom_force_dims
        - Src:             'lwcollection.c:494,12'
          Dst:             lwcollection_construct
    - functionName:    lwcollection_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - char
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          75
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwalloc
        - lwerror
        - lwflags
        - lwtype_is_collection
      functionUses:    49
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:96,8'
          Dst:             lwtype_is_collection
        - Src:             'lwcollection.c:98,3'
          Dst:             lwerror
        - Src:             'lwcollection.c:102,8'
          Dst:             lwalloc
        - Src:             'lwcollection.c:104,15'
          Dst:             lwflags
        - Src:             'lwcollection.c:108,15'
          Dst:             lwalloc
    - functionName:    lwcollection_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - char
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          234
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - lwalloc
        - lwerror
        - lwflags
        - lwtype_is_collection
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:53,8'
          Dst:             lwtype_is_collection
        - Src:             'lwcollection.c:54,3'
          Dst:             lwerror
        - Src:             'lwcollection.c:72,5'
          Dst:             lwerror
        - Src:             'lwcollection.c:78,8'
          Dst:             lwalloc
        - Src:             'lwcollection.c:80,15'
          Dst:             lwflags
    - functionName:    lwcollection_extract_recursive
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          111
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_extract_recursive
        - lwgeom_as_lwcollection
        - lwgeom_clone
        - lwgeom_get_type
        - lwgeom_is_collection
        - lwgeom_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:416,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwcollection.c:418,29'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwcollection.c:419,19'
          Dst:             lwcollection_extract_recursive
        - Src:             'lwcollection.c:422,7'
          Dst:             lwgeom_get_type
        - Src:             'lwcollection.c:422,38'
          Dst:             lwgeom_is_empty
        - Src:             'lwcollection.c:424,37'
          Dst:             lwgeom_clone
        - Src:             'lwcollection.c:424,4'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwcollection_add_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          147
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - lwalloc
        - lwcollection_allows_subtype
        - lwcollection_reserve
        - lwerror
        - lwtype_name
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:195,3'
          Dst:             lwerror
        - Src:             'lwcollection.c:200,9'
          Dst:             lwcollection_allows_subtype
        - Src:             'lwcollection.c:201,43'
          Dst:             lwtype_name
        - Src:             'lwcollection.c:201,67'
          Dst:             lwtype_name
        - Src:             'lwcollection.c:201,3'
          Dst:             lwerror
        - Src:             'lwcollection.c:210,16'
          Dst:             lwalloc
        - Src:             'lwcollection.c:214,2'
          Dst:             lwcollection_reserve
    - functionName:    lwcollection_allows_subtype
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         71
      ICount:          286
      EdgeCount:       98
      CyclomaticComplexity: 29
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_reserve
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwrealloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:182,15'
          Dst:             lwrealloc
    - functionName:    lwcollection_largest_dimension
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwcollection_largest_dimension
        - lwgeom_get_type
        - lwgeom_is_collection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:391,15'
          Dst:             lwgeom_get_type
        - Src:             'lwcollection.c:392,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwcollection.c:394,12'
          Dst:             lwcollection_largest_dimension
    - functionName:    lwcollection_extract
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          131
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - lwcollection_as_lwgeom
        - lwcollection_construct_empty
        - lwcollection_extract_recursive
        - lwcollection_largest_dimension
        - lwerror
        - lwgeom_add_bbox
        - lwtype_multitype
        - lwtype_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:440,10'
          Dst:             lwcollection_largest_dimension
        - Src:             'lwcollection.c:449,10'
          Dst:             lwcollection_construct_empty
        - Src:             'lwcollection.c:460,7'
          Dst:             lwtype_name
        - Src:             'lwcollection.c:457,3'
          Dst:             lwerror
        - Src:             'lwcollection.c:464,40'
          Dst:             lwtype_multitype
        - Src:             'lwcollection.c:464,11'
          Dst:             lwcollection_construct_empty
        - Src:             'lwcollection.c:469,2'
          Dst:             lwcollection_extract_recursive
        - Src:             'lwcollection.c:470,18'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwcollection.c:470,2'
          Dst:             lwgeom_add_bbox
    - functionName:    lwcollection_free
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwfree
        - lwgeom_free
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:364,3'
          Dst:             lwfree
        - Src:             'lwcollection.c:370,4'
          Dst:             lwgeom_free
        - Src:             'lwcollection.c:374,3'
          Dst:             lwfree
        - Src:             'lwcollection.c:376,2'
          Dst:             lwfree
    - functionName:    lwcollection_ngeoms
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          139
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - lwcollection_ngeoms
        - lwerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwcollection.c:334,4'
          Branch Sides:    []
      Callsites:
        - Src:             'lwcollection.c:326,3'
          Dst:             lwerror
        - Src:             'lwcollection.c:349,15'
          Dst:             lwcollection_ngeoms
    - functionName:    lwcollection_same
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:290,10'
          Dst:             lwgeom_same
    - functionName:    lwcollection_segmentize2d
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          122
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - lwalloc
        - lwcollection_clone
        - lwcollection_construct
        - lwfree
        - lwgeom_free
        - lwgeom_segmentize2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:256,27'
          Dst:             lwcollection_clone
        - Src:             'lwcollection.c:258,13'
          Dst:             lwalloc
        - Src:             'lwcollection.c:261,17'
          Dst:             lwgeom_segmentize2d
        - Src:             'lwcollection.c:265,5'
          Dst:             lwgeom_free
        - Src:             'lwcollection.c:266,4'
          Dst:             lwfree
        - Src:             'lwcollection.c:271,9'
          Dst:             lwcollection_construct
    - functionName:    lwcollection_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - gbox_copy
        - lwalloc
        - lwgeom_clone
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:128,22'
          Dst:             lwalloc
        - Src:             'lwcollection.c:132,16'
          Dst:             lwalloc
        - Src:             'lwcollection.c:135,20'
          Dst:             lwgeom_clone
        - Src:             'lwcollection.c:137,30'
          Dst:             gbox_copy
    - functionName:    lwcollection_concat_in_place
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - lwcollection_add_lwgeom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:246,10'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwcollection_clone_deep
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - gbox_copy
        - lwalloc
        - lwgeom_clone_deep
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:154,22'
          Dst:             lwalloc
        - Src:             'lwcollection.c:158,16'
          Dst:             lwalloc
        - Src:             'lwcollection.c:161,20'
          Dst:             lwgeom_clone_deep
        - Src:             'lwcollection.c:163,30'
          Dst:             gbox_copy
    - functionName:    lwcollection_getsubgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_release
      functionSourceFile: '/src/postgis/liblwgeom/lwcollection.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_as_lwgeom
        - lwgeom_release
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcollection.c:38,17'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwcollection.c:38,2'
          Dst:             lwgeom_release
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwcircstring_get_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d
        - lwcircstring_is_empty
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:285,7'
          Dst:             lwcircstring_is_empty
        - Src:             'lwcircstring.c:288,7'
          Dst:             ptarray_construct_empty
        - Src:             'lwcircstring.c:289,7'
          Dst:             getPoint4d
        - Src:             'lwcircstring.c:290,2'
          Dst:             ptarray_append_point
        - Src:             'lwcircstring.c:291,12'
          Dst:             lwpoint_construct
    - functionName:    lwcircstring_length_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwcircstring_is_empty
        - ptarray_arc_length_2d
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:270,7'
          Dst:             lwcircstring_is_empty
        - Src:             'lwcircstring.c:273,9'
          Dst:             ptarray_arc_length_2d
    - functionName:    lwcircstring_length
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcircstring_length_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:265,9'
          Dst:             lwcircstring_length_2d
    - functionName:    lwcircstring_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_has_z
        - ptarray_is_closed_2d
        - ptarray_is_closed_3d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:257,6'
          Dst:             lwgeom_has_z
        - Src:             'lwcircstring.c:258,10'
          Dst:             ptarray_is_closed_3d
        - Src:             'lwcircstring.c:260,9'
          Dst:             ptarray_is_closed_2d
    - functionName:    lwcircstring_setPoint4d
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_set_point4d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:251,2'
          Dst:             ptarray_set_point4d
    - functionName:    lwcircstring_removepoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcircstring_construct
        - ptarray_removePoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:239,10'
          Dst:             ptarray_removePoint
        - Src:             'lwcircstring.c:240,8'
          Dst:             lwcircstring_construct
    - functionName:    lwcircstring_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          110
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - lwalloc
        - lwnotice
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:60,3'
          Dst:             lwnotice
        - Src:             'lwcircstring.c:63,27'
          Dst:             lwalloc
    - functionName:    lwcircstring_addpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
        - lwcircstring_construct
        - ptarray_addPoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:226,27'
          Dst:             getPoint_internal
        - Src:             'lwcircstring.c:225,10'
          Dst:             ptarray_addPoint
        - Src:             'lwcircstring.c:228,8'
          Dst:             lwcircstring_construct
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    lwcircstring_from_lwmpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          132
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint_internal
        - lwalloc
        - lwcircstring_construct
        - ptarray_construct_reference_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:200,14'
          Dst:             lwalloc
        - Src:             'lwcircstring.c:207,10'
          Dst:             getPoint_internal
        - Src:             'lwcircstring.c:212,7'
          Dst:             ptarray_construct_reference_data
        - Src:             'lwcircstring.c:216,9'
          Dst:             lwcircstring_construct
    - functionName:    lwcircstring_from_lwpointarray
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          152
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - getPoint4d_p
        - lwcircstring_construct
        - lwerror
        - lwgeom_has_m
        - lwgeom_has_z
        - lwtype_name
        - ptarray_construct
        - ptarray_set_point4d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:155,52'
          Dst:             lwtype_name
        - Src:             'lwcircstring.c:155,4'
          Dst:             lwerror
        - Src:             'lwcircstring.c:158,12'
          Dst:             lwgeom_has_z
        - Src:             'lwcircstring.c:159,12'
          Dst:             lwgeom_has_m
        - Src:             'lwcircstring.c:166,7'
          Dst:             ptarray_construct
        - Src:             'lwcircstring.c:171,8'
          Dst:             getPoint4d_p
        - Src:             'lwcircstring.c:173,4'
          Dst:             lwerror
        - Src:             'lwcircstring.c:176,3'
          Dst:             ptarray_set_point4d
        - Src:             'lwcircstring.c:179,9'
          Dst:             lwcircstring_construct
    - functionName:    lwcircstring_same
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:132,9'
          Dst:             ptarray_same
    - functionName:    lwcircstring_clone
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwline_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:125,25'
          Dst:             lwline_clone
    - functionName:    printLWCIRCSTRING
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:111,2'
          Dst:             lwnotice
        - Src:             'lwcircstring.c:112,2'
          Dst:             lwnotice
        - Src:             'lwcircstring.c:113,2'
          Dst:             lwnotice
        - Src:             'lwcircstring.c:114,2'
          Dst:             printPA
        - Src:             'lwcircstring.c:115,2'
          Dst:             lwnotice
    - functionName:    lwcircstring_free
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwfree
        - ptarray_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:101,3'
          Dst:             lwfree
        - Src:             'lwcircstring.c:103,3'
          Dst:             ptarray_free
        - Src:             'lwcircstring.c:104,2'
          Dst:             lwfree
    - functionName:    lwcircstring_release
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcircstring_as_lwgeom
        - lwgeom_release
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:92,17'
          Dst:             lwcircstring_as_lwgeom
        - Src:             'lwcircstring.c:92,2'
          Dst:             lwgeom_release
    - functionName:    lwcircstring_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwcircstring.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcircstring.c:80,25'
          Dst:             lwalloc
        - Src:             'lwcircstring.c:82,18'
          Dst:             lwflags
        - Src:             'lwcircstring.c:84,19'
          Dst:             ptarray_construct_empty
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcompound_get_endpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          98
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - lwline_get_lwpoint
        - lwnurbscurve_evaluate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:354,10'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwcompound.c:363,9'
          Dst:             lwline_get_lwpoint
    - functionName:    lwcompound_get_startpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwcompound_get_lwpoint
        - lwnurbscurve_evaluate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:337,10'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwcompound.c:339,9'
          Dst:             lwcompound_get_lwpoint
    - functionName:    lwcompound_get_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          192
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint4d
        - lwerror
        - lwgeom_count_vertices
        - lwgeom_is_empty
        - lwline_get_lwpoint
        - lwpoint_construct
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:287,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:290,12'
          Dst:             lwgeom_count_vertices
        - Src:             'lwcompound.c:293,3'
          Dst:             lwerror
        - Src:             'lwcompound.c:300,27'
          Dst:             lwgeom_count_vertices
        - Src:             'lwcompound.c:312,10'
          Dst:             ptarray_construct_empty
        - Src:             'lwcompound.c:313,10'
          Dst:             getPoint4d
        - Src:             'lwcompound.c:314,5'
          Dst:             ptarray_append_point
        - Src:             'lwcompound.c:315,12'
          Dst:             lwpoint_construct
        - Src:             'lwcompound.c:317,11'
          Dst:             lwline_get_lwpoint
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    10
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwcompound_construct_from_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcompound_add_lwgeom
        - lwcompound_construct_empty
        - lwgeom_clone
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:275,23'
          Dst:             lwcompound_construct_empty
        - Src:             'lwcompound.c:276,32'
          Dst:             lwgeom_clone
        - Src:             'lwcompound.c:276,3'
          Dst:             lwcompound_add_lwgeom
    - functionName:    lwcompound_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:195,33'
          Dst:             lwcollection_construct_empty
    - functionName:    lwcompound_add_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          107
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcompound_curve_endpoint
        - lwgeom_is_empty
        - lwgeom_startpoint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:167,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:176,7'
          Dst:             lwgeom_startpoint
        - Src:             'lwcompound.c:177,7'
          Dst:             lwcompound_curve_endpoint
        - Src:             'lwcompound.c:188,8'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwcompound_curve_endpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          168
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - getPoint4d_p
        - lwgeom_is_empty
        - lwnurbscurve_evaluate
        - lwpoint_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:50,15'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:55,23'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwcompound.c:58,9'
          Dst:             getPoint4d_p
        - Src:             'lwcompound.c:59,3'
          Dst:             lwpoint_free
        - Src:             'lwcompound.c:68,10'
          Dst:             getPoint4d_p
    - functionName:    lwcompound_contains_point
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          161
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwcompound_as_lwgeom
        - lwerror
        - lwgeom_as_lwcircstring
        - lwgeom_as_lwline
        - lwgeom_is_empty
        - lwline_free
        - lwnurbscurve_to_linestring
        - lwtype_name
        - ptarray_raycast_intersections
        - ptarrayarc_raycast_intersections
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:234,22'
          Dst:             lwcompound_as_lwgeom
        - Src:             'lwcompound.c:234,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:243,21'
          Dst:             lwgeom_as_lwline
        - Src:             'lwcompound.c:244,21'
          Dst:             ptarray_raycast_intersections
        - Src:             'lwcompound.c:248,27'
          Dst:             lwgeom_as_lwcircstring
        - Src:             'lwcompound.c:249,21'
          Dst:             ptarrayarc_raycast_intersections
        - Src:             'lwcompound.c:253,21'
          Dst:             lwnurbscurve_to_linestring
        - Src:             'lwcompound.c:254,21'
          Dst:             ptarray_raycast_intersections
        - Src:             'lwcompound.c:255,4'
          Dst:             lwline_free
        - Src:             'lwcompound.c:259,49'
          Dst:             lwtype_name
        - Src:             'lwcompound.c:259,4'
          Dst:             lwerror
    - functionName:    lwgeom_contains_point
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - lwcompound_contains_point
        - lwerror
        - lwline_free
        - lwnurbscurve_to_linestring
        - ptarray_contains_point
        - ptarrayarc_contains_point
      functionUses:    13
      BranchProfiles:
        - Branch String:   'lwcompound.c:201,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwcompound.c:204,11'
          Dst:             ptarray_contains_point
        - Src:             'lwcompound.c:206,11'
          Dst:             ptarrayarc_contains_point
        - Src:             'lwcompound.c:208,11'
          Dst:             lwcompound_contains_point
        - Src:             'lwcompound.c:212,21'
          Dst:             lwnurbscurve_to_linestring
        - Src:             'lwcompound.c:213,13'
          Dst:             ptarray_contains_point
        - Src:             'lwcompound.c:214,4'
          Dst:             lwline_free
        - Src:             'lwcompound.c:218,2'
          Dst:             lwerror
    - functionName:    lwcompound_length_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_is_empty
        - lwgeom_length_2d
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:152,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:157,13'
          Dst:             lwgeom_length_2d
    - functionName:    lwcompound_length
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcompound_length_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:145,9'
          Dst:             lwcompound_length_2d
    - functionName:    lwcompound_points_equal
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcompound_is_valid
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - lwcompound_as_lwgeom
        - lwcompound_curve_endpoint
        - lwcompound_points_equal
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwgeom_startpoint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:113,26'
          Dst:             lwcompound_as_lwgeom
        - Src:             'lwcompound.c:113,13'
          Dst:             lwgeom_has_z
        - Src:             'lwcompound.c:114,22'
          Dst:             lwcompound_as_lwgeom
        - Src:             'lwcompound.c:114,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:129,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:129,38'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:132,7'
          Dst:             lwgeom_startpoint
        - Src:             'lwcompound.c:133,7'
          Dst:             lwcompound_curve_endpoint
        - Src:             'lwcompound.c:136,8'
          Dst:             lwcompound_points_equal
    - functionName:    lwcompound_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - lwcompound_as_lwgeom
        - lwcompound_curve_endpoint
        - lwcompound_is_valid
        - lwcompound_points_equal
        - lwgeom_has_z
        - lwgeom_is_closed
        - lwgeom_is_empty
        - lwgeom_startpoint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:91,26'
          Dst:             lwcompound_as_lwgeom
        - Src:             'lwcompound.c:91,13'
          Dst:             lwgeom_has_z
        - Src:             'lwcompound.c:92,22'
          Dst:             lwcompound_as_lwgeom
        - Src:             'lwcompound.c:92,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwcompound.c:96,31'
          Dst:             lwgeom_is_closed
        - Src:             'lwcompound.c:100,7'
          Dst:             lwcompound_is_valid
        - Src:             'lwcompound.c:103,6'
          Dst:             lwgeom_startpoint
        - Src:             'lwcompound.c:104,6'
          Dst:             lwcompound_curve_endpoint
        - Src:             'lwcompound.c:107,9'
          Dst:             lwcompound_points_equal
    - functionName:    lwcollection_getsubcurve
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcompound_num_curves
      functionSourceFile: '/src/postgis/liblwgeom/lwcompound.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcompound.c:37,3'
          Dst:             lwerror
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcurvepoly_perimeter_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwcurvepoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_length_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcurvepoly.c:166,13'
          Dst:             lwgeom_length_2d
    - functionName:    lwcurvepoly_perimeter
      functionSourceFile: '/src/postgis/liblwgeom/lwcurvepoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_length
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcurvepoly.c:154,13'
          Dst:             lwgeom_length
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwcurvepoly_area
      functionSourceFile: '/src/postgis/liblwgeom/lwcurvepoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwcurvepoly_stroke
        - lwgeom_is_empty
        - lwpoly_area
        - lwpoly_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcurvepoly.c:138,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwcurvepoly.c:140,9'
          Dst:             lwcurvepoly_stroke
        - Src:             'lwcurvepoly.c:141,9'
          Dst:             lwpoly_area
        - Src:             'lwcurvepoly.c:142,2'
          Dst:             lwpoly_free
    - functionName:    lwcurvepoly_add_ring
      functionSourceFile: '/src/postgis/liblwgeom/lwcurvepoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          233
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - lwalloc
        - lwerror
        - lwrealloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcurvepoly.c:86,3'
          Dst:             lwerror
        - Src:             'lwcurvepoly.c:104,17'
          Dst:             lwalloc
        - Src:             'lwcurvepoly.c:111,17'
          Dst:             lwrealloc
    - functionName:    lwcurvepoly_construct_from_lwpoly
      functionSourceFile: '/src/postgis/liblwgeom/lwcurvepoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          115
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_clone
        - lwalloc
        - lwline_as_lwgeom
        - lwline_construct
        - ptarray_clone_deep
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcurvepoly.c:56,8'
          Dst:             lwalloc
        - Src:             'lwcurvepoly.c:62,15'
          Dst:             lwalloc
        - Src:             'lwcurvepoly.c:63,29'
          Dst:             gbox_clone
        - Src:             'lwcurvepoly.c:66,70'
          Dst:             ptarray_clone_deep
        - Src:             'lwcurvepoly.c:66,36'
          Dst:             lwline_construct
        - Src:             'lwcurvepoly.c:66,19'
          Dst:             lwline_as_lwgeom
    - functionName:    lwcurvepoly_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwcurvepoly.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          54
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwcurvepoly.c:39,8'
          Dst:             lwalloc
        - Src:             'lwcurvepoly.c:41,15'
          Dst:             lwflags
        - Src:             'lwcurvepoly.c:45,15'
          Dst:             lwalloc
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwpsurface_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwpsurface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         76
      ICount:          543
      EdgeCount:       104
      CyclomaticComplexity: 30
      functionsReached:
        - getPoint4d_p
        - lwalloc
        - lwfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpsurface.c:121,9'
          Dst:             lwalloc
        - Src:             'lwpsurface.c:129,4'
          Dst:             getPoint4d_p
        - Src:             'lwpsurface.c:130,4'
          Dst:             getPoint4d_p
        - Src:             'lwpsurface.c:141,5'
          Dst:             getPoint4d_p
        - Src:             'lwpsurface.c:159,7'
          Dst:             lwfree
        - Src:             'lwpsurface.c:181,6'
          Dst:             lwfree
        - Src:             'lwpsurface.c:194,4'
          Dst:             lwfree
        - Src:             'lwpsurface.c:198,2'
          Dst:             lwfree
    - functionName:    printLWPSURFACE
      functionSourceFile: '/src/postgis/liblwgeom/lwpsurface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          111
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - lwerror
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpsurface.c:63,3'
          Dst:             lwerror
        - Src:             'lwpsurface.c:65,2'
          Dst:             lwnotice
        - Src:             'lwpsurface.c:66,2'
          Dst:             lwnotice
        - Src:             'lwpsurface.c:67,2'
          Dst:             lwnotice
        - Src:             'lwpsurface.c:68,2'
          Dst:             lwnotice
        - Src:             'lwpsurface.c:75,4'
          Dst:             lwnotice
        - Src:             'lwpsurface.c:76,4'
          Dst:             printPA
        - Src:             'lwpsurface.c:79,2'
          Dst:             lwnotice
    - functionName:    lwpsurface_free
      functionSourceFile: '/src/postgis/liblwgeom/lwpsurface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwfree
        - lwpoly_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpsurface.c:44,3'
          Dst:             lwfree
        - Src:             'lwpsurface.c:48,4'
          Dst:             lwpoly_free
        - Src:             'lwpsurface.c:51,3'
          Dst:             lwfree
        - Src:             'lwpsurface.c:53,2'
          Dst:             lwfree
    - functionName:    lwpsurface_add_lwpoly
      functionSourceFile: '/src/postgis/liblwgeom/lwpsurface.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_add_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwpsurface.c:35,22'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwtin_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/lwtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         63
      ICount:          455
      EdgeCount:       86
      CyclomaticComplexity: 25
      functionsReached:
        - getPoint4d_p
        - lwalloc
        - lwfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtin.c:108,9'
          Dst:             lwalloc
        - Src:             'lwtin.c:116,4'
          Dst:             getPoint4d_p
        - Src:             'lwtin.c:117,4'
          Dst:             getPoint4d_p
        - Src:             'lwtin.c:125,5'
          Dst:             getPoint4d_p
        - Src:             'lwtin.c:143,7'
          Dst:             lwfree
        - Src:             'lwtin.c:165,6'
          Dst:             lwfree
        - Src:             'lwtin.c:178,4'
          Dst:             lwfree
        - Src:             'lwtin.c:182,2'
          Dst:             lwfree
    - functionName:    printLWTIN
      functionSourceFile: '/src/postgis/liblwgeom/lwtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          87
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
        - lwnotice
        - printPA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtin.c:63,3'
          Dst:             lwerror
        - Src:             'lwtin.c:65,2'
          Dst:             lwnotice
        - Src:             'lwtin.c:66,2'
          Dst:             lwnotice
        - Src:             'lwtin.c:67,2'
          Dst:             lwnotice
        - Src:             'lwtin.c:68,2'
          Dst:             lwnotice
        - Src:             'lwtin.c:73,3'
          Dst:             printPA
        - Src:             'lwtin.c:75,2'
          Dst:             lwnotice
    - functionName:    lwtin_free
      functionSourceFile: '/src/postgis/liblwgeom/lwtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwfree
        - lwtriangle_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtin.c:44,3'
          Dst:             lwfree
        - Src:             'lwtin.c:48,4'
          Dst:             lwtriangle_free
        - Src:             'lwtin.c:51,3'
          Dst:             lwfree
        - Src:             'lwtin.c:53,2'
          Dst:             lwfree
    - functionName:    lwtin_add_lwtriangle
      functionSourceFile: '/src/postgis/liblwgeom/lwtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_add_lwgeom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwtin.c:36,17'
          Dst:             lwcollection_add_lwgeom
    - functionName:    parse_geojson_poly_rings
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          244
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - json_object_array_get_idx
        - json_object_array_length
        - json_object_get_type
        - lwalloc
        - lwerror
        - lwfree
        - lwpoly_construct
        - lwpoly_construct_empty
        - parse_geojson_coord
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:178,16'
          Dst:             json_object_get_type
        - Src:             'lwin_geojson.c:181,15'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:185,10'
          Dst:             lwpoly_construct_empty
        - Src:             'lwin_geojson.c:188,36'
          Dst:             lwalloc
        - Src:             'lwin_geojson.c:193,25'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:194,18'
          Dst:             json_object_get_type
        - Src:             'lwin_geojson.c:197,5'
          Dst:             ptarray_free
        - Src:             'lwin_geojson.c:198,4'
          Dst:             lwfree
        - Src:             'lwin_geojson.c:199,4'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:202,17'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:214,12'
          Dst:             ptarray_construct_empty
        - Src:             'lwin_geojson.c:218,13'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:219,22'
          Dst:             parse_geojson_coord
        - Src:             'lwin_geojson.c:222,6'
          Dst:             ptarray_free
        - Src:             'lwin_geojson.c:223,5'
          Dst:             lwfree
        - Src:             'lwin_geojson.c:224,5'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:234,3'
          Dst:             lwfree
        - Src:             'lwin_geojson.c:235,10'
          Dst:             lwpoly_construct_empty
        - Src:             'lwin_geojson.c:238,9'
          Dst:             lwpoly_construct
    - functionName:    json_object_get_type
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_array_length
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_array_get_idx
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_geojson_coord
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - json_object_array_get_idx
        - json_object_array_length
        - json_object_get_double
        - json_object_get_type
        - lwerror
        - ptarray_append_point
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:110,6'
          Dst:             json_object_get_type
        - Src:             'lwin_geojson.c:113,21'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:118,4'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:123,16'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:124,10'
          Dst:             json_object_get_double
        - Src:             'lwin_geojson.c:127,16'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:128,10'
          Dst:             json_object_get_double
        - Src:             'lwin_geojson.c:133,17'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:134,11'
          Dst:             json_object_get_double
        - Src:             'lwin_geojson.c:141,3'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:145,9'
          Dst:             ptarray_append_point
    - functionName:    json_object_get_double
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_coordinates
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - findMemberByName
        - json_object_get_type
        - lwerror
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:89,29'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:92,3'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:96,25'
          Dst:             json_object_get_type
        - Src:             'lwin_geojson.c:98,3'
          Dst:             lwerror
    - functionName:    findMemberByName
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          130
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - json_object_get_object
        - lwerror
        - strcasecmp
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:66,6'
          Dst:             json_object_get_object
        - Src:             'lwin_geojson.c:68,8'
          Dst:             json_object_get_object
        - Src:             'lwin_geojson.c:70,4'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:74,19'
          Dst:             json_object_get_object
        - Src:             'lwin_geojson.c:78,8'
          Dst:             strcasecmp
    - functionName:    json_object_get_object
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_geojson_geometrycollection
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - findMemberByName
        - json_object_array_get_idx
        - json_object_array_length
        - json_object_get_type
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwerror
        - lwgeom_free
        - parse_geojson
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:334,28'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:337,3'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:340,27'
          Dst:             lwcollection_construct_empty
        - Src:             'lwin_geojson.c:342,25'
          Dst:             json_object_get_type
        - Src:             'lwin_geojson.c:344,22'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:347,29'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:348,16'
          Dst:             parse_geojson
        - Src:             'lwin_geojson.c:350,22'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwin_geojson.c:353,5'
          Dst:             lwgeom_free
    - functionName:    parse_geojson
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          141
      EdgeCount:       31
      CyclomaticComplexity: 11
      functionsReached:
        - findMemberByName
        - json_object_get_string
        - lwerror
        - parse_geojson_geometrycollection
        - parse_geojson_linestring
        - parse_geojson_multilinestring
        - parse_geojson_multipoint
        - parse_geojson_multipolygon
        - parse_geojson_point
        - parse_geojson_polygon
        - strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:370,3'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:374,9'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:377,3'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:381,9'
          Dst:             json_object_get_string
        - Src:             'lwin_geojson.c:383,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:384,10'
          Dst:             parse_geojson_point
        - Src:             'lwin_geojson.c:386,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:387,10'
          Dst:             parse_geojson_linestring
        - Src:             'lwin_geojson.c:389,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:390,10'
          Dst:             parse_geojson_polygon
        - Src:             'lwin_geojson.c:392,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:393,10'
          Dst:             parse_geojson_multipoint
        - Src:             'lwin_geojson.c:395,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:396,10'
          Dst:             parse_geojson_multilinestring
        - Src:             'lwin_geojson.c:398,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:399,10'
          Dst:             parse_geojson_multipolygon
        - Src:             'lwin_geojson.c:401,6'
          Dst:             strcasecmp
        - Src:             'lwin_geojson.c:402,10'
          Dst:             parse_geojson_geometrycollection
        - Src:             'lwin_geojson.c:404,2'
          Dst:             lwerror
    - functionName:    json_object_get_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_geojson_point
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwpoint_construct
        - parse_coordinates
        - parse_geojson_coord
        - ptarray_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:151,24'
          Dst:             parse_coordinates
        - Src:             'lwin_geojson.c:154,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwin_geojson.c:155,2'
          Dst:             parse_geojson_coord
        - Src:             'lwin_geojson.c:156,19'
          Dst:             lwpoint_construct
    - functionName:    parse_geojson_linestring
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - json_object_array_get_idx
        - json_object_array_length
        - lwline_construct
        - parse_coordinates
        - parse_geojson_coord
        - ptarray_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:162,24'
          Dst:             parse_coordinates
        - Src:             'lwin_geojson.c:165,19'
          Dst:             ptarray_construct_empty
        - Src:             'lwin_geojson.c:166,22'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:169,25'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:170,3'
          Dst:             parse_geojson_coord
        - Src:             'lwin_geojson.c:172,19'
          Dst:             lwline_construct
    - functionName:    parse_geojson_polygon
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - parse_coordinates
        - parse_geojson_poly_rings
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:244,44'
          Dst:             parse_coordinates
        - Src:             'lwin_geojson.c:244,19'
          Dst:             parse_geojson_poly_rings
    - functionName:    parse_geojson_multipoint
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - json_object_array_get_idx
        - json_object_array_length
        - lwcollection_construct_empty
        - lwmpoint_add_lwpoint
        - lwmpoint_free
        - lwpoint_construct
        - parse_coordinates
        - parse_geojson_coord
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:250,24'
          Dst:             parse_coordinates
        - Src:             'lwin_geojson.c:253,31'
          Dst:             lwcollection_construct_empty
        - Src:             'lwin_geojson.c:255,22'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:258,20'
          Dst:             ptarray_construct_empty
        - Src:             'lwin_geojson.c:259,24'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:260,7'
          Dst:             parse_geojson_coord
        - Src:             'lwin_geojson.c:261,38'
          Dst:             lwpoint_construct
        - Src:             'lwin_geojson.c:261,11'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwin_geojson.c:264,4'
          Dst:             lwmpoint_free
        - Src:             'lwin_geojson.c:265,4'
          Dst:             ptarray_free
    - functionName:    parse_geojson_multilinestring
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          131
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - json_object_array_get_idx
        - json_object_array_length
        - json_object_get_type
        - lwcollection_construct_empty
        - lwline_construct
        - lwmline_add_lwline
        - lwmline_free
        - parse_coordinates
        - parse_geojson_coord
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:276,21'
          Dst:             parse_coordinates
        - Src:             'lwin_geojson.c:279,29'
          Dst:             lwcollection_construct_empty
        - Src:             'lwin_geojson.c:280,21'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:283,20'
          Dst:             ptarray_construct_empty
        - Src:             'lwin_geojson.c:284,25'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:286,26'
          Dst:             json_object_get_type
        - Src:             'lwin_geojson.c:288,24'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:291,26'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:292,10'
          Dst:             parse_geojson_coord
        - Src:             'lwin_geojson.c:294,6'
          Dst:             lwmline_free
        - Src:             'lwin_geojson.c:295,6'
          Dst:             ptarray_free
        - Src:             'lwin_geojson.c:299,36'
          Dst:             lwline_construct
        - Src:             'lwin_geojson.c:299,11'
          Dst:             lwmline_add_lwline
        - Src:             'lwin_geojson.c:303,4'
          Dst:             lwmline_free
        - Src:             'lwin_geojson.c:304,4'
          Dst:             ptarray_free
    - functionName:    parse_geojson_multipolygon
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - json_object_array_get_idx
        - json_object_array_length
        - lwcollection_construct_empty
        - lwmpoly_add_lwpoly
        - parse_coordinates
        - parse_geojson_poly_rings
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:314,23'
          Dst:             parse_coordinates
        - Src:             'lwin_geojson.c:317,27'
          Dst:             lwcollection_construct_empty
        - Src:             'lwin_geojson.c:318,15'
          Dst:             json_object_array_length
        - Src:             'lwin_geojson.c:322,24'
          Dst:             json_object_array_get_idx
        - Src:             'lwin_geojson.c:323,18'
          Dst:             parse_geojson_poly_rings
        - Src:             'lwin_geojson.c:325,21'
          Dst:             lwmpoly_add_lwpoly
    - functionName:    lwgeom_from_geojson
      functionSourceFile: '/src/postgis/liblwgeom/lwin_geojson.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          170
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - findMemberByName
        - json_object_get_string
        - json_object_put
        - json_tokener_error_desc
        - json_tokener_free
        - json_tokener_new
        - json_tokener_parse_ex
        - lwalloc
        - lwerror
        - lwgeom_add_bbox
        - lwgeom_force_2d
        - lwgeom_free
        - parse_geojson
        - snprintf
        - strcpy
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwin_geojson.c:420,24'
          Dst:             json_tokener_new
        - Src:             'lwin_geojson.c:421,23'
          Dst:             json_tokener_parse_ex
        - Src:             'lwin_geojson.c:425,43'
          Dst:             json_tokener_error_desc
        - Src:             'lwin_geojson.c:425,3'
          Dst:             snprintf
        - Src:             'lwin_geojson.c:426,3'
          Dst:             json_tokener_free
        - Src:             'lwin_geojson.c:427,3'
          Dst:             json_object_put
        - Src:             'lwin_geojson.c:428,3'
          Dst:             lwerror
        - Src:             'lwin_geojson.c:431,2'
          Dst:             json_tokener_free
        - Src:             'lwin_geojson.c:434,26'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:437,31'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:440,33'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:443,30'
          Dst:             findMemberByName
        - Src:             'lwin_geojson.c:446,28'
          Dst:             json_object_get_string
        - Src:             'lwin_geojson.c:449,22'
          Dst:             strlen
        - Src:             'lwin_geojson.c:449,14'
          Dst:             lwalloc
        - Src:             'lwin_geojson.c:450,7'
          Dst:             strcpy
        - Src:             'lwin_geojson.c:458,19'
          Dst:             parse_geojson
        - Src:             'lwin_geojson.c:459,2'
          Dst:             json_object_put
        - Src:             'lwin_geojson.c:465,17'
          Dst:             lwgeom_force_2d
        - Src:             'lwin_geojson.c:466,3'
          Dst:             lwgeom_free
        - Src:             'lwin_geojson.c:469,2'
          Dst:             lwgeom_add_bbox
    - functionName:    json_tokener_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tokener_parse_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tokener_error_desc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_tokener_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_put
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    prepend_node
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:55,16'
          Dst:             lwalloc
    - functionName:    lwgeom_get_type
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unroll_collection
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - add_lwgeom_to_stack
        - lwcollection_getsubgeom
        - pop_node
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:131,13'
          Dst:             pop_node
        - Src:             'lwiterator.c:135,21'
          Dst:             lwcollection_getsubgeom
        - Src:             'lwiterator.c:137,3'
          Dst:             add_lwgeom_to_stack
    - functionName:    pop_node
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwfree
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:66,2'
          Dst:             lwfree
    - functionName:    add_lwgeom_to_stack
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_is_empty
        - prepend_node
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:73,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwiterator.c:76,13'
          Dst:             prepend_node
    - functionName:    extract_pointarrays_from_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          121
      EdgeCount:       16
      CyclomaticComplexity: 2
      functionsReached:
        - lwerror
        - lwgeom_as_lwcircstring
        - lwgeom_as_lwline
        - lwgeom_as_lwnurbscurve
        - lwgeom_as_lwpoint
        - lwgeom_as_lwpoly
        - lwgeom_as_lwtriangle
        - lwgeom_get_type
        - lwnurbscurve_get_control_points
        - lwtype_name
        - prepend_node
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwiterator.c:86,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwiterator.c:86,9'
          Dst:             lwgeom_get_type
        - Src:             'lwiterator.c:89,23'
          Dst:             lwgeom_as_lwpoint
        - Src:             'lwiterator.c:89,10'
          Dst:             prepend_node
        - Src:             'lwiterator.c:91,23'
          Dst:             lwgeom_as_lwline
        - Src:             'lwiterator.c:91,10'
          Dst:             prepend_node
        - Src:             'lwiterator.c:93,23'
          Dst:             lwgeom_as_lwtriangle
        - Src:             'lwiterator.c:93,10'
          Dst:             prepend_node
        - Src:             'lwiterator.c:95,23'
          Dst:             lwgeom_as_lwcircstring
        - Src:             'lwiterator.c:95,10'
          Dst:             prepend_node
        - Src:             'lwiterator.c:97,55'
          Dst:             lwgeom_as_lwnurbscurve
        - Src:             'lwiterator.c:97,23'
          Dst:             lwnurbscurve_get_control_points
        - Src:             'lwiterator.c:97,10'
          Dst:             prepend_node
        - Src:             'lwiterator.c:102,15'
          Dst:             lwgeom_as_lwpoly
        - Src:             'lwiterator.c:105,8'
          Dst:             prepend_node
        - Src:             'lwiterator.c:110,58'
          Dst:             lwtype_name
        - Src:             'lwiterator.c:110,3'
          Dst:             lwerror
    - functionName:    unroll_collections
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_is_collection
        - unroll_collection
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:147,20'
          Dst:             lwgeom_is_collection
        - Src:             'lwiterator.c:149,3'
          Dst:             unroll_collection
    - functionName:    lwpointiterator_destroy
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwfree
        - pop_node
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:274,14'
          Dst:             pop_node
        - Src:             'lwiterator.c:279,20'
          Dst:             pop_node
        - Src:             'lwiterator.c:282,2'
          Dst:             lwfree
    - functionName:    lwpointiterator_create_rw
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - add_lwgeom_to_stack
        - lwalloc
        - lwpointiterator_advance
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:256,24'
          Dst:             lwalloc
        - Src:             'lwiterator.c:263,2'
          Dst:             add_lwgeom_to_stack
        - Src:             'lwiterator.c:264,2'
          Dst:             lwpointiterator_advance
    - functionName:    lwpointiterator_advance
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          122
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - extract_pointarrays_from_lwgeom
        - pop_node
        - unroll_collections
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:162,20'
          Dst:             pop_node
        - Src:             'lwiterator.c:171,3'
          Dst:             unroll_collections
        - Src:             'lwiterator.c:180,20'
          Dst:             extract_pointarrays_from_lwgeom
        - Src:             'lwiterator.c:182,14'
          Dst:             pop_node
    - functionName:    lwpointiterator_create
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwpointiterator_create_rw
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:247,24'
          Dst:             lwpointiterator_create_rw
    - functionName:    lwpointiterator_modify_next
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
        - lwpointiterator_advance
        - lwpointiterator_has_next
        - ptarray_set_point4d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:228,7'
          Dst:             lwpointiterator_has_next
        - Src:             'lwiterator.c:233,3'
          Dst:             lwerror
        - Src:             'lwiterator.c:238,2'
          Dst:             ptarray_set_point4d
        - Src:             'lwiterator.c:240,2'
          Dst:             lwpointiterator_advance
    - functionName:    lwpointiterator_has_next
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpointiterator_next
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lwpointiterator_advance
        - lwpointiterator_has_next
        - lwpointiterator_peek
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:214,7'
          Dst:             lwpointiterator_has_next
        - Src:             'lwiterator.c:218,12'
          Dst:             lwpointiterator_peek
        - Src:             'lwiterator.c:221,2'
          Dst:             lwpointiterator_advance
    - functionName:    lwpointiterator_peek
      functionSourceFile: '/src/postgis/liblwgeom/lwiterator.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwpointiterator_has_next
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwiterator.c:197,7'
          Dst:             lwpointiterator_has_next
        - Src:             'lwiterator.c:200,9'
          Dst:             getPoint4d_p
    - functionName:    stringbuffer_append_double
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwprint_double
        - stringbuffer_makeroom
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:114,2'
          Dst:             stringbuffer_makeroom
        - Src:             './stringbuffer.h:115,16'
          Dst:             lwprint_double
    - functionName:    stringbuffer_makeroom
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwrealloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:82,18'
          Dst:             lwrealloc
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coordinate_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          57
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - stringbuffer_append_double
        - stringbuffer_append_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:95,2'
          Dst:             stringbuffer_append_double
        - Src:             'lwout_wkt.c:99,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:100,3'
          Dst:             stringbuffer_append_double
    - functionName:    stringbuffer_append_len
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_makeroom
      functionUses:    80
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:96,2'
          Dst:             stringbuffer_makeroom
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    ptarray_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          145
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - coordinate_to_wkt_sb
        - getPoint_internal
        - stringbuffer_append_len
        - stringbuffer_makeroom
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:118,2'
          Dst:             stringbuffer_makeroom
        - Src:             'lwout_wkt.c:121,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:128,31'
          Dst:             getPoint_internal
        - Src:             'lwout_wkt.c:129,3'
          Dst:             coordinate_to_wkt_sb
        - Src:             'lwout_wkt.c:133,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:134,24'
          Dst:             getPoint_internal
        - Src:             'lwout_wkt.c:135,4'
          Dst:             coordinate_to_wkt_sb
        - Src:             'lwout_wkt.c:141,3'
          Dst:             stringbuffer_append_len
    - functionName:    empty_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strchr
        - stringbuffer_append_len
        - stringbuffer_lastchar
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:84,23'
          Dst:             stringbuffer_lastchar
        - Src:             'lwout_wkt.c:84,9'
          Dst:             strchr
        - Src:             'lwout_wkt.c:86,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:88,2'
          Dst:             stringbuffer_append_len
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dimension_qualifiers_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          187
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - stringbuffer_append_len
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:48,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:50,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:51,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:62,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:69,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:71,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:73,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:74,3'
          Dst:             stringbuffer_append_len
    - functionName:    lwnurbscurve_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          341
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached:
        - coordinate_to_wkt_sb
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - getPoint_internal
        - lwfree
        - lwnurbscurve_get_or_generate_knots
        - stringbuffer_append_double
        - stringbuffer_append_len
        - stringbuffer_aprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:674,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:675,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:680,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:684,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:685,2'
          Dst:             stringbuffer_aprintf
        - Src:             'lwout_wkt.c:686,2'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:687,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:692,30'
          Dst:             getPoint_internal
        - Src:             'lwout_wkt.c:696,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:698,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:699,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:700,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:701,3'
          Dst:             coordinate_to_wkt_sb
        - Src:             'lwout_wkt.c:702,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:703,3'
          Dst:             stringbuffer_append_double
        - Src:             'lwout_wkt.c:704,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:706,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:708,10'
          Dst:             lwnurbscurve_get_or_generate_knots
        - Src:             'lwout_wkt.c:712,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:720,5'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:721,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:722,4'
          Dst:             stringbuffer_append_double
        - Src:             'lwout_wkt.c:723,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:724,4'
          Dst:             stringbuffer_aprintf
        - Src:             'lwout_wkt.c:725,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:727,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:728,3'
          Dst:             lwfree
        - Src:             'lwout_wkt.c:731,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwpsurface_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwpoly_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:622,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:623,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:627,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:633,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:637,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:639,3'
          Dst:             lwpoly_to_wkt_sb
        - Src:             'lwout_wkt.c:641,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwpoly_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          102
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwpoly_is_empty
        - ptarray_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:198,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:199,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:201,7'
          Dst:             lwpoly_is_empty
        - Src:             'lwout_wkt.c:203,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:207,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:211,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:212,3'
          Dst:             ptarray_to_wkt_sb
        - Src:             'lwout_wkt.c:214,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtin_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwtriangle_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:583,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:584,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:588,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:592,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:596,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:598,3'
          Dst:             lwtriangle_to_wkt_sb
        - Src:             'lwout_wkt.c:600,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwtriangle_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwtriangle_is_empty
        - ptarray_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:560,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:561,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:563,7'
          Dst:             lwtriangle_is_empty
        - Src:             'lwout_wkt.c:565,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:569,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:570,2'
          Dst:             ptarray_to_wkt_sb
        - Src:             'lwout_wkt.c:571,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwmsurface_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          155
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwcurvepoly_to_wkt_sb
        - lwerror
        - lwpoly_to_wkt_sb
        - lwtype_name
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwout_wkt.c:506,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwout_wkt.c:491,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:492,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:496,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:499,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:505,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:510,4'
          Dst:             lwpoly_to_wkt_sb
        - Src:             'lwout_wkt.c:514,4'
          Dst:             lwcurvepoly_to_wkt_sb
        - Src:             'lwout_wkt.c:517,73'
          Dst:             lwtype_name
        - Src:             'lwout_wkt.c:517,4'
          Dst:             lwerror
        - Src:             'lwout_wkt.c:520,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwcurvepoly_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          185
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwcircstring_to_wkt_sb
        - lwcompound_to_wkt_sb
        - lwerror
        - lwline_to_wkt_sb
        - lwnurbscurve_to_wkt_sb
        - lwtype_name
        - stringbuffer_append_len
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwout_wkt.c:404,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwout_wkt.c:389,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:390,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:394,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:397,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:403,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:408,4'
          Dst:             lwline_to_wkt_sb
        - Src:             'lwout_wkt.c:412,4'
          Dst:             lwcircstring_to_wkt_sb
        - Src:             'lwout_wkt.c:416,4'
          Dst:             lwcompound_to_wkt_sb
        - Src:             'lwout_wkt.c:419,4'
          Dst:             lwnurbscurve_to_wkt_sb
        - Src:             'lwout_wkt.c:422,74'
          Dst:             lwtype_name
        - Src:             'lwout_wkt.c:422,4'
          Dst:             lwerror
        - Src:             'lwout_wkt.c:425,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwline_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwline_is_empty
        - ptarray_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:178,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:179,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:181,7'
          Dst:             lwline_is_empty
        - Src:             'lwout_wkt.c:183,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:187,5'
          Dst:             ptarray_to_wkt_sb
    - functionName:    lwcircstring_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwcircstring_is_empty
        - ptarray_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:224,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:225,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:227,7'
          Dst:             lwcircstring_is_empty
        - Src:             'lwout_wkt.c:229,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:232,2'
          Dst:             ptarray_to_wkt_sb
    - functionName:    lwcompound_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          180
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwcircstring_to_wkt_sb
        - lwerror
        - lwline_to_wkt_sb
        - lwnurbscurve_to_wkt_sb
        - lwtype_name
        - stringbuffer_append_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:340,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:341,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:345,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:349,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:355,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:359,4'
          Dst:             lwline_to_wkt_sb
        - Src:             'lwout_wkt.c:364,4'
          Dst:             lwcircstring_to_wkt_sb
        - Src:             'lwout_wkt.c:368,4'
          Dst:             lwnurbscurve_to_wkt_sb
        - Src:             'lwout_wkt.c:372,73'
          Dst:             lwtype_name
        - Src:             'lwout_wkt.c:372,4'
          Dst:             lwerror
        - Src:             'lwout_wkt.c:375,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwmcurve_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          185
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwcircstring_to_wkt_sb
        - lwcompound_to_wkt_sb
        - lwerror
        - lwline_to_wkt_sb
        - lwnurbscurve_to_wkt_sb
        - lwtype_name
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwout_wkt.c:455,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwout_wkt.c:440,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:441,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:445,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:448,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:454,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:459,4'
          Dst:             lwline_to_wkt_sb
        - Src:             'lwout_wkt.c:463,4'
          Dst:             lwcircstring_to_wkt_sb
        - Src:             'lwout_wkt.c:467,4'
          Dst:             lwcompound_to_wkt_sb
        - Src:             'lwout_wkt.c:470,4'
          Dst:             lwnurbscurve_to_wkt_sb
        - Src:             'lwout_wkt.c:473,71'
          Dst:             lwtype_name
        - Src:             'lwout_wkt.c:473,4'
          Dst:             lwerror
        - Src:             'lwout_wkt.c:476,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwcollection_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwgeom_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:534,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:535,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:539,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:542,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:547,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:548,3'
          Dst:             lwgeom_to_wkt_sb
        - Src:             'lwout_wkt.c:550,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwgeom_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          183
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - lwcircstring_to_wkt_sb
        - lwcollection_to_wkt_sb
        - lwcompound_to_wkt_sb
        - lwcurvepoly_to_wkt_sb
        - lwerror
        - lwline_to_wkt_sb
        - lwmcurve_to_wkt_sb
        - lwmline_to_wkt_sb
        - lwmpoint_to_wkt_sb
        - lwmpoly_to_wkt_sb
        - lwmsurface_to_wkt_sb
        - lwnurbscurve_to_wkt_sb
        - lwpoint_to_wkt_sb
        - lwpoly_to_wkt_sb
        - lwpsurface_to_wkt_sb
        - lwtin_to_wkt_sb
        - lwtriangle_to_wkt_sb
        - lwtype_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwout_wkt.c:754,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwout_wkt.c:757,3'
          Dst:             lwpoint_to_wkt_sb
        - Src:             'lwout_wkt.c:760,3'
          Dst:             lwline_to_wkt_sb
        - Src:             'lwout_wkt.c:763,3'
          Dst:             lwpoly_to_wkt_sb
        - Src:             'lwout_wkt.c:766,3'
          Dst:             lwmpoint_to_wkt_sb
        - Src:             'lwout_wkt.c:769,3'
          Dst:             lwmline_to_wkt_sb
        - Src:             'lwout_wkt.c:772,3'
          Dst:             lwmpoly_to_wkt_sb
        - Src:             'lwout_wkt.c:775,3'
          Dst:             lwcollection_to_wkt_sb
        - Src:             'lwout_wkt.c:778,3'
          Dst:             lwcircstring_to_wkt_sb
        - Src:             'lwout_wkt.c:781,3'
          Dst:             lwcompound_to_wkt_sb
        - Src:             'lwout_wkt.c:784,3'
          Dst:             lwcurvepoly_to_wkt_sb
        - Src:             'lwout_wkt.c:787,3'
          Dst:             lwmcurve_to_wkt_sb
        - Src:             'lwout_wkt.c:790,3'
          Dst:             lwmsurface_to_wkt_sb
        - Src:             'lwout_wkt.c:793,3'
          Dst:             lwtriangle_to_wkt_sb
        - Src:             'lwout_wkt.c:796,3'
          Dst:             lwtin_to_wkt_sb
        - Src:             'lwout_wkt.c:799,3'
          Dst:             lwpsurface_to_wkt_sb
        - Src:             'lwout_wkt.c:802,3'
          Dst:             lwnurbscurve_to_wkt_sb
        - Src:             'lwout_wkt.c:806,23'
          Dst:             lwtype_name
        - Src:             'lwout_wkt.c:805,3'
          Dst:             lwerror
    - functionName:    lwpoint_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwpoint_is_empty
        - ptarray_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:158,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:159,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:162,7'
          Dst:             lwpoint_is_empty
        - Src:             'lwout_wkt.c:164,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:168,2'
          Dst:             ptarray_to_wkt_sb
    - functionName:    lwmpoint_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwpoint_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:247,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:248,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:252,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:255,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:262,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:264,3'
          Dst:             lwpoint_to_wkt_sb
        - Src:             'lwout_wkt.c:266,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwmline_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwline_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:278,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:279,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:283,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:287,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:292,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:294,3'
          Dst:             lwline_to_wkt_sb
        - Src:             'lwout_wkt.c:296,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwmpoly_to_wkt_sb
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - dimension_qualifiers_to_wkt_sb
        - empty_to_wkt_sb
        - lwpoly_to_wkt_sb
        - stringbuffer_append_len
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:308,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:309,3'
          Dst:             dimension_qualifiers_to_wkt_sb
        - Src:             'lwout_wkt.c:313,3'
          Dst:             empty_to_wkt_sb
        - Src:             'lwout_wkt.c:317,2'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:322,4'
          Dst:             stringbuffer_append_len
        - Src:             'lwout_wkt.c:324,3'
          Dst:             lwpoly_to_wkt_sb
        - Src:             'lwout_wkt.c:326,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_to_wkt_varlena
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_to_wkt_internal
        - stringbuffer_destroy
        - stringbuffer_getvarlenacopy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:858,23'
          Dst:             lwgeom_to_wkt_internal
        - Src:             'lwout_wkt.c:861,24'
          Dst:             stringbuffer_getvarlenacopy
        - Src:             'lwout_wkt.c:862,2'
          Dst:             stringbuffer_destroy
    - functionName:    lwgeom_to_wkt_internal
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - lwerror
        - lwgeom_has_srid
        - lwgeom_to_wkt_sb
        - stringbuffer_aprintf
        - stringbuffer_create
        - stringbuffer_getstring
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:816,7'
          Dst:             stringbuffer_create
        - Src:             'lwout_wkt.c:818,35'
          Dst:             lwgeom_has_srid
        - Src:             'lwout_wkt.c:820,3'
          Dst:             stringbuffer_aprintf
        - Src:             'lwout_wkt.c:822,2'
          Dst:             lwgeom_to_wkt_sb
        - Src:             'lwout_wkt.c:823,7'
          Dst:             stringbuffer_getstring
        - Src:             'lwout_wkt.c:825,3'
          Dst:             lwerror
    - functionName:    lwgeom_to_wkt
      functionSourceFile: '/src/postgis/liblwgeom/lwout_wkt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_to_wkt_internal
        - stringbuffer_destroy
        - stringbuffer_getlength
        - stringbuffer_getstringcopy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwout_wkt.c:845,23'
          Dst:             lwgeom_to_wkt_internal
        - Src:             'lwout_wkt.c:848,14'
          Dst:             stringbuffer_getstringcopy
        - Src:             'lwout_wkt.c:850,15'
          Dst:             stringbuffer_getlength
        - Src:             'lwout_wkt.c:851,2'
          Dst:             stringbuffer_destroy
    - functionName:    stringbuffer_makeroom
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwrealloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:82,18'
          Dst:             lwrealloc
    - functionName:    lwrealloc
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    default_reallocator
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - realloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:106,14'
          Dst:             realloc
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    dumb_toupper
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          35
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geometry_type_from_string
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          201
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - dumb_toupper
        - lwalloc
        - lwfree
        - strcmp
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:487,18'
          Dst:             strlen
        - Src:             'lwutil.c:496,14'
          Dst:             strlen
        - Src:             'lwutil.c:497,11'
          Dst:             strlen
        - Src:             'lwutil.c:507,11'
          Dst:             lwalloc
        - Src:             'lwutil.c:509,29'
          Dst:             dumb_toupper
        - Src:             'lwutil.c:517,8'
          Dst:             strcmp
        - Src:             'lwutil.c:523,4'
          Dst:             lwfree
        - Src:             'lwutil.c:530,2'
          Dst:             lwfree
    - functionName:    lwalloc
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    108
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwfree
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    108
      BranchProfiles:  []
      Callsites:       []
    - functionName:    default_freeor
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    default_allocator
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwflags
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clamp_srid
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:315,4'
          Dst:             lwnotice
        - Src:             'lwutil.c:322,3'
          Dst:             lwnotice
    - functionName:    lwnotice
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    88
      BranchProfiles:  []
      Callsites:       []
    - functionName:    default_noticereporter
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fprintf
        - vsnprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:122,2'
          Dst:             vsnprintf
        - Src:             'lwutil.c:124,2'
          Dst:             fprintf
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_append_len
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_makeroom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:96,2'
          Dst:             stringbuffer_makeroom
    - functionName:    stringbuffer_append
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_append_len
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:107,13'
          Dst:             strlen
        - Src:             './stringbuffer.h:108,2'
          Dst:             stringbuffer_append_len
    - functionName:    lwmessage_truncate
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - stringbuffer_append
        - stringbuffer_append_len
        - stringbuffer_getstringcopy
        - stringbuffer_init
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:278,11'
          Dst:             strlen
        - Src:             'lwutil.c:281,2'
          Dst:             stringbuffer_init
        - Src:             'lwutil.c:294,3'
          Dst:             stringbuffer_append
        - Src:             'lwutil.c:299,3'
          Dst:             stringbuffer_append
        - Src:             'lwutil.c:300,3'
          Dst:             stringbuffer_append_len
        - Src:             'lwutil.c:303,9'
          Dst:             stringbuffer_getstringcopy
    - functionName:    lwstrdup
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - strlen
        - strncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:258,13'
          Dst:             strlen
        - Src:             'lwutil.c:259,12'
          Dst:             lwalloc
        - Src:             'lwutil.c:260,2'
          Dst:             strncpy
    - functionName:    strncpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwalloc0
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtype_name
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    71
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwdebug
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    default_debuglogger
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - fprintf
        - vsnprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:137,3'
          Dst:             vsnprintf
        - Src:             'lwutil.c:139,3'
          Dst:             fprintf
    - functionName:    lwerror
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    387
      BranchProfiles:  []
      Callsites:       []
    - functionName:    default_errorreporter
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - fprintf
        - vsnprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwutil.c:147,2'
          Dst:             vsnprintf
        - Src:             'lwutil.c:149,2'
          Dst:             fprintf
        - Src:             'lwutil.c:150,2'
          Dst:             exit
    - functionName:    exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_set_debuglogger
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          19
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_set_handlers
      functionSourceFile: '/src/postgis/liblwgeom/lwutil.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_build_buffer
      functionSourceFile: '/src/postgis/liblwgeom/lwhomogenize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          186
      EdgeCount:       30
      CyclomaticComplexity: 5
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_build_buffer
        - lwcollection_construct_empty
        - lwcollection_is_empty
        - lwgeom_as_lwcollection
        - lwgeom_clone_deep
        - lwtype_get_collectiontype
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwhomogenize.c:86,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwhomogenize.c:80,14'
          Dst:             lwcollection_is_empty
        - Src:             'lwhomogenize.c:99,28'
          Dst:             lwcollection_construct_empty
        - Src:             'lwhomogenize.c:101,20'
          Dst:             lwtype_get_collectiontype
        - Src:             'lwhomogenize.c:105,53'
          Dst:             lwgeom_clone_deep
        - Src:             'lwhomogenize.c:105,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwhomogenize.c:110,30'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwhomogenize.c:110,4'
          Dst:             lwcollection_build_buffer
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_homogenizebuffer
      functionSourceFile: '/src/postgis/liblwgeom/lwhomogenize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         5
      ICount:          36
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_homogenize
      functionSourceFile: '/src/postgis/liblwgeom/lwhomogenize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          236
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - init_homogenizebuffer
        - lwcollection_add_lwgeom
        - lwcollection_as_lwgeom
        - lwcollection_build_buffer
        - lwcollection_construct_empty
        - lwcollection_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwhomogenize.c:127,2'
          Dst:             init_homogenizebuffer
        - Src:             'lwhomogenize.c:128,2'
          Dst:             lwcollection_build_buffer
        - Src:             'lwhomogenize.c:144,12'
          Dst:             lwcollection_construct_empty
        - Src:             'lwhomogenize.c:145,13'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwhomogenize.c:155,22'
          Dst:             lwcollection_free
        - Src:             'lwhomogenize.c:159,14'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwhomogenize.c:168,12'
          Dst:             lwcollection_construct_empty
        - Src:             'lwhomogenize.c:176,6'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwhomogenize.c:177,22'
          Dst:             lwcollection_free
        - Src:             'lwhomogenize.c:181,38'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwhomogenize.c:181,6'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwhomogenize.c:185,13'
          Dst:             lwcollection_as_lwgeom
    - functionName:    lwgeom_homogenize
      functionSourceFile: '/src/postgis/liblwgeom/lwhomogenize.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         32
      ICount:          192
      EdgeCount:       35
      CyclomaticComplexity: 5
      functionsReached:
        - gbox_copy
        - lwcollection_as_lwgeom
        - lwcollection_construct_empty
        - lwcollection_homogenize
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_is_collection
        - lwgeom_is_empty
        - lwtype_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwhomogenize.c:224,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwhomogenize.c:214,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwhomogenize.c:216,7'
          Dst:             lwgeom_is_collection
        - Src:             'lwhomogenize.c:218,87'
          Dst:             lwgeom_has_z
        - Src:             'lwhomogenize.c:218,107'
          Dst:             lwgeom_has_m
        - Src:             'lwhomogenize.c:218,34'
          Dst:             lwcollection_construct_empty
        - Src:             'lwhomogenize.c:218,11'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwhomogenize.c:221,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwhomogenize.c:236,11'
          Dst:             lwgeom_clone_deep
        - Src:             'lwhomogenize.c:252,13'
          Dst:             lwgeom_clone_deep
        - Src:             'lwhomogenize.c:255,20'
          Dst:             gbox_copy
        - Src:             'lwhomogenize.c:260,11'
          Dst:             lwgeom_clone_deep
        - Src:             'lwhomogenize.c:265,11'
          Dst:             lwcollection_homogenize
        - Src:             'lwhomogenize.c:270,10'
          Dst:             lwtype_name
        - Src:             'lwhomogenize.c:269,2'
          Dst:             lwerror
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_geohash
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - gbox_init
        - geohash_point
        - lwerror
        - lwgeom_calculate_gbox_cartesian
        - lwgeom_geohash_precision
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:843,2'
          Dst:             gbox_init
        - Src:             'lwalgorithm.c:844,2'
          Dst:             gbox_init
        - Src:             'lwalgorithm.c:846,11'
          Dst:             lwgeom_calculate_gbox_cartesian
        - Src:             'lwalgorithm.c:852,3'
          Dst:             lwerror
        - Src:             'lwalgorithm.c:865,15'
          Dst:             lwgeom_geohash_precision
        - Src:             'lwalgorithm.c:873,9'
          Dst:             geohash_point
    - functionName:    lwgeom_geohash_precision
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          293
      EdgeCount:       60
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geohash_point
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - double
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          173
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - lwalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:565,19'
          Dst:             lwalloc
    - functionName:    decode_geohash_bbox
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          201
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - lwerror
        - strchr
        - strlen
        - tolower
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:691,19'
          Dst:             strlen
        - Src:             'lwalgorithm.c:699,12'
          Dst:             tolower
        - Src:             'lwalgorithm.c:702,22'
          Dst:             strchr
        - Src:             'lwalgorithm.c:705,4'
          Dst:             lwerror
    - functionName:    tolower
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geohash_point_as_int
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          117
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    lwline_crossing_direction
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 422
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          338
      EdgeCount:       89
      CyclomaticComplexity: 25
      functionsReached:
        - getPoint2d_cp
        - lw_segment_intersects
        - ptarray_length_2d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:442,7'
          Dst:             ptarray_length_2d
        - Src:             'lwalgorithm.c:442,38'
          Dst:             ptarray_length_2d
        - Src:             'lwalgorithm.c:456,7'
          Dst:             getPoint2d_cp
        - Src:             'lwalgorithm.c:462,8'
          Dst:             getPoint2d_cp
        - Src:             'lwalgorithm.c:465,8'
          Dst:             getPoint2d_cp
        - Src:             'lwalgorithm.c:471,9'
          Dst:             getPoint2d_cp
        - Src:             'lwalgorithm.c:473,17'
          Dst:             lw_segment_intersects
    - functionName:    lw_segment_intersects
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          249
      EdgeCount:       72
      CyclomaticComplexity: 22
      functionsReached:
        - lw_seg_interact
        - lw_segment_side
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:338,7'
          Dst:             lw_seg_interact
        - Src:             'lwalgorithm.c:344,6'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:345,6'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:352,6'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:353,6'
          Dst:             lw_segment_side
    - functionName:    lw_seg_interact
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 298
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          255
      EdgeCount:       47
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_segment_side
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          50
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_arc_side
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - distance2d_pt_pt
        - lw_arc_center
        - lw_segment_side
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:201,11'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:202,13'
          Dst:             lw_arc_center
        - Src:             'lwalgorithm.c:203,12'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:209,6'
          Dst:             distance2d_pt_pt
    - functionName:    lw_arc_center
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      double
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          231
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_arc_length
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          193
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - lw_arc_center
        - lw_arc_is_pt
        - lw_segment_side
        - p2d_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:142,7'
          Dst:             lw_arc_is_pt
        - Src:             'lwalgorithm.c:145,13'
          Dst:             lw_arc_center
        - Src:             'lwalgorithm.c:157,7'
          Dst:             p2d_same
        - Src:             'lwalgorithm.c:161,12'
          Dst:             lw_segment_side
    - functionName:    lw_arc_is_pt
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p2d_same
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_pt_on_segment
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lw_pt_in_seg
        - lw_segment_side
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:112,13'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:114,9'
          Dst:             lw_pt_in_seg
    - functionName:    lw_pt_in_seg
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          123
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_pt_in_arc
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lw_segment_side
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lwalgorithm.c:93,16'
          Dst:             lw_segment_side
        - Src:             'lwalgorithm.c:94,17'
          Dst:             lw_segment_side
    - functionName:    lw_seg_length
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          39
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p3dz_same
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p3d_same
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    p4d_same
      functionSourceFile: '/src/postgis/liblwgeom/lwalgorithm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linestring_from_pa
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          69
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwline_as_lwgeom
        - lwline_construct
        - ptarray_construct
        - ptarray_has_m
        - ptarray_has_z
        - ptarray_set_point4d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1094,38'
          Dst:             ptarray_has_z
        - Src:             'lwstroke.c:1094,57'
          Dst:             ptarray_has_m
        - Src:             'lwstroke.c:1094,20'
          Dst:             ptarray_construct
        - Src:             'lwstroke.c:1098,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1099,3'
          Dst:             ptarray_set_point4d
        - Src:             'lwstroke.c:1101,26'
          Dst:             lwline_construct
        - Src:             'lwstroke.c:1101,9'
          Dst:             lwline_as_lwgeom
    - functionName:    circstring_from_pa
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint4d_p
        - lwcircstring_as_lwgeom
        - lwcircstring_construct
        - ptarray_construct
        - ptarray_has_m
        - ptarray_has_z
        - ptarray_set_point4d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1109,38'
          Dst:             ptarray_has_z
        - Src:             'lwstroke.c:1109,57'
          Dst:             ptarray_has_m
        - Src:             'lwstroke.c:1109,20'
          Dst:             ptarray_construct
        - Src:             'lwstroke.c:1111,2'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1112,2'
          Dst:             ptarray_set_point4d
        - Src:             'lwstroke.c:1113,2'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1114,2'
          Dst:             ptarray_set_point4d
        - Src:             'lwstroke.c:1115,2'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1116,2'
          Dst:             ptarray_set_point4d
        - Src:             'lwstroke.c:1117,32'
          Dst:             lwcircstring_construct
        - Src:             'lwstroke.c:1117,9'
          Dst:             lwcircstring_as_lwgeom
    - functionName:    interpolate_arc
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      double
      argCount:        7
      argTypes:
        - double
        - double
        - double
        - double
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          104
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    angle_increment_using_max_angle
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:230,3'
          Dst:             lwerror
    - functionName:    angle_increment_using_max_deviation
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          81
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:165,3'
          Dst:             lwerror
    - functionName:    angle_increment_using_segments_per_quad
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:143,3'
          Dst:             lwerror
        - Src:             'lwstroke.c:148,3'
          Dst:             lwerror
    - functionName:    lwarc_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          684
      EdgeCount:       114
      CyclomaticComplexity: 28
      functionsReached:
        - angle_increment_using_max_angle
        - angle_increment_using_max_deviation
        - angle_increment_using_segments_per_quad
        - getPoint4d_p
        - interpolate_arc
        - lw_arc_center
        - lw_segment_side
        - lwerror
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_free
        - ptarray_has_m
        - ptarray_has_z
        - ptarray_remove_point
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwstroke.c:319,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwstroke.c:283,12'
          Dst:             lw_segment_side
        - Src:             'lwstroke.c:299,11'
          Dst:             lw_arc_center
        - Src:             'lwstroke.c:322,16'
          Dst:             angle_increment_using_segments_per_quad
        - Src:             'lwstroke.c:325,16'
          Dst:             angle_increment_using_max_deviation
        - Src:             'lwstroke.c:328,16'
          Dst:             angle_increment_using_max_angle
        - Src:             'lwstroke.c:331,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:463,32'
          Dst:             ptarray_has_z
        - Src:             'lwstroke.c:463,51'
          Dst:             ptarray_has_m
        - Src:             'lwstroke.c:463,8'
          Dst:             ptarray_construct_empty
        - Src:             'lwstroke.c:471,3'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:493,10'
          Dst:             interpolate_arc
        - Src:             'lwstroke.c:494,10'
          Dst:             interpolate_arc
        - Src:             'lwstroke.c:495,3'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:502,3'
          Dst:             ptarray_remove_point
        - Src:             'lwstroke.c:503,3'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:509,3'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:511,4'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:512,4'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:514,3'
          Dst:             ptarray_free
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1416
      functionLinenumberEnd: 1434
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 11
      functionsReached:
        - lwcollection_unstroke
        - lwgeom_clone_deep
        - lwline_unstroke
        - lwmline_unstroke
        - lwmpolygon_unstroke
        - lwpolygon_unstroke
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwstroke.c:1419,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwstroke.c:1422,10'
          Dst:             lwline_unstroke
        - Src:             'lwstroke.c:1424,10'
          Dst:             lwpolygon_unstroke
        - Src:             'lwstroke.c:1426,10'
          Dst:             lwmline_unstroke
        - Src:             'lwstroke.c:1428,10'
          Dst:             lwmpolygon_unstroke
        - Src:             'lwstroke.c:1430,10'
          Dst:             lwcollection_unstroke
        - Src:             'lwstroke.c:1432,10'
          Dst:             lwgeom_clone_deep
    - functionName:    lwline_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1294
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_as_lwgeom
        - lwline_clone_deep
        - pta_unstroke
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1297,59'
          Dst:             lwline_clone_deep
        - Src:             'lwstroke.c:1297,42'
          Dst:             lwline_as_lwgeom
        - Src:             'lwstroke.c:1298,14'
          Dst:             pta_unstroke
    - functionName:    lwpolygon_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwfree
        - lwgeom_clone_deep
        - pta_unstroke
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1309,10'
          Dst:             lwalloc
        - Src:             'lwstroke.c:1312,14'
          Dst:             pta_unstroke
        - Src:             'lwstroke.c:1322,4'
          Dst:             lwfree
        - Src:             'lwstroke.c:1324,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwstroke.c:1327,19'
          Dst:             lwcollection_construct
    - functionName:    lwmline_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          139
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwfree
        - lwgeom_clone_deep
        - lwline_unstroke
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1338,10'
          Dst:             lwalloc
        - Src:             'lwstroke.c:1341,14'
          Dst:             lwline_unstroke
        - Src:             'lwstroke.c:1351,4'
          Dst:             lwfree
        - Src:             'lwstroke.c:1353,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwstroke.c:1355,19'
          Dst:             lwcollection_construct
    - functionName:    lwmpolygon_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwfree
        - lwgeom_clone_deep
        - lwpolygon_unstroke
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1366,10'
          Dst:             lwalloc
        - Src:             'lwstroke.c:1369,14'
          Dst:             lwpolygon_unstroke
        - Src:             'lwstroke.c:1379,4'
          Dst:             lwfree
        - Src:             'lwstroke.c:1381,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwstroke.c:1383,19'
          Dst:             lwcollection_construct
    - functionName:    lwcollection_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1388
      functionLinenumberEnd: 1410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - gbox_copy
        - lwalloc
        - lwgeom_unstroke
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1389,22'
          Dst:             lwalloc
        - Src:             'lwstroke.c:1395,16'
          Dst:             lwalloc
        - Src:             'lwstroke.c:1398,20'
          Dst:             lwgeom_unstroke
        - Src:             'lwstroke.c:1402,16'
          Dst:             gbox_copy
    - functionName:    pta_unstroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          420
      EdgeCount:       75
      CyclomaticComplexity: 19
      functionsReached:
        - geom_from_pa
        - getPoint4d_p
        - lw_arc_angle
        - lw_arc_center
        - lw_segment_side
        - lwalloc
        - lwcollection_add_lwgeom
        - lwcollection_as_lwgeom
        - lwcollection_construct_empty
        - lwcollection_free
        - lwerror
        - lwfree
        - pt_continues_arc
        - ptarray_has_m
        - ptarray_has_z
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1148,3'
          Dst:             lwerror
        - Src:             'lwstroke.c:1158,3'
          Dst:             lwerror
        - Src:             'lwstroke.c:1163,18'
          Dst:             lwalloc
        - Src:             'lwstroke.c:1176,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1177,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1178,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1184,4'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:1186,9'
          Dst:             pt_continues_arc
        - Src:             'lwstroke.c:1220,5'
          Dst:             lw_arc_center
        - Src:             'lwstroke.c:1221,13'
          Dst:             lw_arc_angle
        - Src:             'lwstroke.c:1222,19'
          Dst:             lw_segment_side
        - Src:             'lwstroke.c:1264,60'
          Dst:             ptarray_has_z
        - Src:             'lwstroke.c:1264,83'
          Dst:             ptarray_has_m
        - Src:             'lwstroke.c:1264,11'
          Dst:             lwcollection_construct_empty
        - Src:             'lwstroke.c:1270,36'
          Dst:             geom_from_pa
        - Src:             'lwstroke.c:1270,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwstroke.c:1275,2'
          Dst:             lwfree
        - Src:             'lwstroke.c:1279,34'
          Dst:             geom_from_pa
        - Src:             'lwstroke.c:1279,2'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwstroke.c:1285,23'
          Dst:             lwcollection_free
        - Src:             'lwstroke.c:1288,9'
          Dst:             lwcollection_as_lwgeom
    - functionName:    pt_continues_arc
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1048
      functionLinenumberEnd: 1087
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          118
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - distance2d_pt_pt
        - lw_arc_angle
        - lw_arc_center
        - lw_segment_side
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1054,18'
          Dst:             lw_arc_center
        - Src:             'lwstroke.c:1061,15'
          Dst:             distance2d_pt_pt
        - Src:             'lwstroke.c:1068,17'
          Dst:             lw_segment_side
        - Src:             'lwstroke.c:1069,17'
          Dst:             lw_segment_side
        - Src:             'lwstroke.c:1070,19'
          Dst:             lw_arc_angle
        - Src:             'lwstroke.c:1071,19'
          Dst:             lw_arc_angle
    - functionName:    lw_arc_angle
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          79
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geom_from_pa
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1128
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - circstring_from_pa
        - linestring_from_pa
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1125,10'
          Dst:             circstring_from_pa
        - Src:             'lwstroke.c:1127,10'
          Dst:             linestring_from_pa
    - functionName:    lwgeom_stroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcurve_linearize
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:1017,9'
          Dst:             lwcurve_linearize
    - functionName:    lwcurve_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 982
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - lwcircstring_linearize
        - lwcollection_linearize
        - lwcompound_linearize
        - lwcurvepoly_linearize
        - lwgeom_clone_deep
        - lwmcurve_linearize
        - lwmsurface_linearize
        - lwnurbscurve_linearize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwstroke.c:984,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwstroke.c:987,21'
          Dst:             lwcircstring_linearize
        - Src:             'lwstroke.c:990,21'
          Dst:             lwnurbscurve_linearize
        - Src:             'lwstroke.c:993,21'
          Dst:             lwcompound_linearize
        - Src:             'lwstroke.c:996,21'
          Dst:             lwcurvepoly_linearize
        - Src:             'lwstroke.c:999,21'
          Dst:             lwmcurve_linearize
        - Src:             'lwstroke.c:1002,21'
          Dst:             lwmsurface_linearize
        - Src:             'lwstroke.c:1005,21'
          Dst:             lwcollection_linearize
        - Src:             'lwstroke.c:1008,11'
          Dst:             lwgeom_clone_deep
    - functionName:    lwcircstring_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          176
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint4d_p
        - lwarc_linearize
        - lwline_construct
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:541,12'
          Dst:             ptarray_construct_empty
        - Src:             'lwstroke.c:547,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:548,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:549,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:551,9'
          Dst:             lwarc_linearize
        - Src:             'lwstroke.c:562,5'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:563,5'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:569,4'
          Dst:             ptarray_free
        - Src:             'lwstroke.c:575,3'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:576,3'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:579,10'
          Dst:             lwline_construct
    - functionName:    lwnurbscurve_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          249
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - lwerror
        - lwnurbscurve_to_linestring
        - ptarray_calculate_gbox_cartesian
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lwstroke.c:914,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwstroke.c:910,3'
          Dst:             lwerror
        - Src:             'lwstroke.c:919,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:924,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:938,11'
          Dst:             lwnurbscurve_to_linestring
        - Src:             'lwstroke.c:940,7'
          Dst:             ptarray_calculate_gbox_cartesian
        - Src:             'lwstroke.c:951,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:960,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:966,3'
          Dst:             lwerror
        - Src:             'lwstroke.c:975,9'
          Dst:             lwnurbscurve_to_linestring
    - functionName:    lwcompound_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          231
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint4d_p
        - lwcircstring_linearize
        - lwerror
        - lwline_construct
        - lwline_free
        - lwnurbscurve_linearize
        - lwtype_name
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_remove_repeated_points_in_place
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:604,12'
          Dst:             ptarray_construct_empty
        - Src:             'lwstroke.c:611,10'
          Dst:             lwcircstring_linearize
        - Src:             'lwstroke.c:614,5'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:615,5'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:617,4'
          Dst:             lwline_free
        - Src:             'lwstroke.c:624,5'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:625,5'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:630,10'
          Dst:             lwnurbscurve_linearize
        - Src:             'lwstroke.c:633,5'
          Dst:             lwerror
        - Src:             'lwstroke.c:638,5'
          Dst:             getPoint4d_p
        - Src:             'lwstroke.c:639,5'
          Dst:             ptarray_append_point
        - Src:             'lwstroke.c:641,4'
          Dst:             lwline_free
        - Src:             'lwstroke.c:645,59'
          Dst:             lwtype_name
        - Src:             'lwstroke.c:645,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:650,2'
          Dst:             ptarray_remove_repeated_points_in_place
        - Src:             'lwstroke.c:651,9'
          Dst:             lwline_construct
    - functionName:    lwcurvepoly_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          197
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
        - lwcircstring_linearize
        - lwcompound_linearize
        - lwerror
        - lwline_free
        - lwnurbscurve_linearize
        - lwpoly_construct
        - ptarray_clone_deep
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:676,12'
          Dst:             lwalloc
        - Src:             'lwstroke.c:683,11'
          Dst:             lwcircstring_linearize
        - Src:             'lwstroke.c:684,17'
          Dst:             ptarray_clone_deep
        - Src:             'lwstroke.c:685,4'
          Dst:             lwline_free
        - Src:             'lwstroke.c:690,17'
          Dst:             ptarray_clone_deep
        - Src:             'lwstroke.c:694,11'
          Dst:             lwcompound_linearize
        - Src:             'lwstroke.c:695,17'
          Dst:             ptarray_clone_deep
        - Src:             'lwstroke.c:696,4'
          Dst:             lwline_free
        - Src:             'lwstroke.c:700,11'
          Dst:             lwnurbscurve_linearize
        - Src:             'lwstroke.c:703,5'
          Dst:             lwerror
        - Src:             'lwstroke.c:706,17'
          Dst:             ptarray_clone_deep
        - Src:             'lwstroke.c:707,4'
          Dst:             lwline_free
        - Src:             'lwstroke.c:711,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:716,10'
          Dst:             lwpoly_construct
    - functionName:    lwmcurve_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          181
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
        - lwcircstring_linearize
        - lwcollection_construct
        - lwcompound_linearize
        - lwerror
        - lwline_construct
        - lwnurbscurve_linearize
        - ptarray_clone_deep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:747,10'
          Dst:             lwalloc
        - Src:             'lwstroke.c:754,25'
          Dst:             lwcircstring_linearize
        - Src:             'lwstroke.c:758,62'
          Dst:             ptarray_clone_deep
        - Src:             'lwstroke.c:758,25'
          Dst:             lwline_construct
        - Src:             'lwstroke.c:762,25'
          Dst:             lwcompound_linearize
        - Src:             'lwstroke.c:766,25'
          Dst:             lwnurbscurve_linearize
        - Src:             'lwstroke.c:769,5'
          Dst:             lwerror
        - Src:             'lwstroke.c:775,4'
          Dst:             lwerror
        - Src:             'lwstroke.c:780,21'
          Dst:             lwcollection_construct
    - functionName:    lwmsurface_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          160
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwcurvepoly_linearize
        - lwpoly_construct
        - ptarray_clone_deep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:806,10'
          Dst:             lwalloc
        - Src:             'lwstroke.c:813,25'
          Dst:             lwcurvepoly_linearize
        - Src:             'lwstroke.c:818,14'
          Dst:             lwalloc
        - Src:             'lwstroke.c:821,18'
          Dst:             ptarray_clone_deep
        - Src:             'lwstroke.c:823,25'
          Dst:             lwpoly_construct
        - Src:             'lwstroke.c:826,21'
          Dst:             lwcollection_construct
    - functionName:    lwcollection_linearize
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          182
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - lwalloc
        - lwcircstring_linearize
        - lwcollection_construct
        - lwcollection_linearize
        - lwcompound_linearize
        - lwcurvepoly_linearize
        - lwerror
        - lwgeom_clone_deep
        - lwnurbscurve_linearize
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwstroke.c:855,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwstroke.c:850,10'
          Dst:             lwalloc
        - Src:             'lwstroke.c:858,25'
          Dst:             lwcircstring_linearize
        - Src:             'lwstroke.c:861,25'
          Dst:             lwnurbscurve_linearize
        - Src:             'lwstroke.c:864,5'
          Dst:             lwerror
        - Src:             'lwstroke.c:869,25'
          Dst:             lwcompound_linearize
        - Src:             'lwstroke.c:872,25'
          Dst:             lwcurvepoly_linearize
        - Src:             'lwstroke.c:877,25'
          Dst:             lwcollection_linearize
        - Src:             'lwstroke.c:880,15'
          Dst:             lwgeom_clone_deep
        - Src:             'lwstroke.c:884,9'
          Dst:             lwcollection_construct
    - functionName:    lwcurvepoly_stroke
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwcurvepoly_linearize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwstroke.c:724,10'
          Dst:             lwcurvepoly_linearize
    - functionName:    lwgeom_type_arc
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          46
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwstroke.c:95,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwgeom_has_arc
      functionSourceFile: '/src/postgis/liblwgeom/lwstroke.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_has_arc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwstroke.c:65,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwstroke.c:85,8'
          Dst:             lwgeom_has_arc
    - functionName:    lwdouble_to_dms
      functionSourceFile: '/src/postgis/liblwgeom/lwprint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - double
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         165
      ICount:          907
      EdgeCount:       215
      CyclomaticComplexity: 52
      functionsReached:
        - lwalloc
        - lwerror
        - snprintf
        - strcat
        - strcpy
        - strlen
        - strncat
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwprint.c:146,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwprint.c:114,46'
          Dst:             strlen
        - Src:             'lwprint.c:134,19'
          Dst:             strlen
        - Src:             'lwprint.c:140,3'
          Dst:             lwerror
        - Src:             'lwprint.c:161,6'
          Dst:             lwerror
        - Src:             'lwprint.c:182,6'
          Dst:             lwerror
        - Src:             'lwprint.c:203,6'
          Dst:             lwerror
        - Src:             'lwprint.c:224,5'
          Dst:             lwerror
        - Src:             'lwprint.c:247,5'
          Dst:             strncat
        - Src:             'lwprint.c:279,6'
          Dst:             lwerror
        - Src:             'lwprint.c:286,6'
          Dst:             lwerror
        - Src:             'lwprint.c:292,7'
          Dst:             lwerror
        - Src:             'lwprint.c:297,4'
          Dst:             strncat
        - Src:             'lwprint.c:304,4'
          Dst:             lwerror
        - Src:             'lwprint.c:309,3'
          Dst:             lwerror
        - Src:             'lwprint.c:328,4'
          Dst:             lwerror
        - Src:             'lwprint.c:352,3'
          Dst:             strcpy
        - Src:             'lwprint.c:362,3'
          Dst:             lwerror
        - Src:             'lwprint.c:366,3'
          Dst:             snprintf
        - Src:             'lwprint.c:374,4'
          Dst:             lwerror
        - Src:             'lwprint.c:376,3'
          Dst:             snprintf
        - Src:             'lwprint.c:383,4'
          Dst:             lwerror
        - Src:             'lwprint.c:385,3'
          Dst:             snprintf
        - Src:             'lwprint.c:389,18'
          Dst:             lwalloc
        - Src:             'lwprint.c:393,2'
          Dst:             strcpy
        - Src:             'lwprint.c:396,3'
          Dst:             strcat
    - functionName:    strncat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwprint_normalize_latlon
      functionSourceFile: '/src/postgis/liblwgeom/lwprint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwprint_double
      functionSourceFile: '/src/postgis/liblwgeom/lwprint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - double
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - d2sexp_buffered_n
        - d2sfixed_buffered_n
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwprint.c:471,12'
          Dst:             d2sexp_buffered_n
        - Src:             'lwprint.c:475,12'
          Dst:             d2sfixed_buffered_n
    - functionName:    lwdoubles_to_latlon
      functionSourceFile: '/src/postgis/liblwgeom/lwprint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwdouble_to_dms
        - lwfree
        - lwprint_normalize_latlon
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwprint.c:416,2'
          Dst:             lwprint_normalize_latlon
        - Src:             'lwprint.c:418,13'
          Dst:             lwdouble_to_dms
        - Src:             'lwprint.c:419,13'
          Dst:             lwdouble_to_dms
        - Src:             'lwprint.c:422,7'
          Dst:             strlen
        - Src:             'lwprint.c:422,26'
          Dst:             strlen
        - Src:             'lwprint.c:423,18'
          Dst:             lwalloc
        - Src:             'lwprint.c:424,2'
          Dst:             snprintf
        - Src:             'lwprint.c:425,2'
          Dst:             lwfree
        - Src:             'lwprint.c:426,2'
          Dst:             lwfree
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwpoint_to_latlon
      functionSourceFile: '/src/postgis/liblwgeom/lwprint.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
        - lwdoubles_to_latlon
        - lwerror
        - lwgeom_is_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwprint.c:442,3'
          Dst:             lwerror
        - Src:             'lwprint.c:444,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwprint.c:446,3'
          Dst:             lwerror
        - Src:             'lwprint.c:448,6'
          Dst:             getPoint2d_cp
        - Src:             'lwprint.c:449,9'
          Dst:             lwdoubles_to_latlon
    - functionName:    uint64_interleave_2
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          72
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_arc_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          131
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lw_arc_calculate_gbox_cartesian_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:540,7'
          Dst:             lw_arc_calculate_gbox_cartesian_2d
    - functionName:    lw_arc_calculate_gbox_cartesian_2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          430
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - lw_arc_center
        - lw_segment_side
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:474,13'
          Dst:             lw_arc_center
        - Src:             'gbox.c:516,12'
          Dst:             lw_segment_side
        - Src:             'gbox.c:518,18'
          Dst:             lw_segment_side
        - Src:             'gbox.c:521,18'
          Dst:             lw_segment_side
        - Src:             'gbox.c:524,18'
          Dst:             lw_segment_side
        - Src:             'gbox.c:527,18'
          Dst:             lw_segment_side
    - functionName:    getPoint4d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:123,26'
          Dst:             getPoint_internal
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint3d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:111,26'
          Dst:             getPoint_internal
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    uint32_hilbert
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          306
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - uint64_interleave_2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:379,9'
          Dst:             uint64_interleave_2
    - functionName:    gbox_get_sortable_hash
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          154
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - cart2geog
        - normalize
        - uint32_hilbert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:862,3'
          Dst:             normalize
        - Src:             'gbox.c:863,3'
          Dst:             cart2geog
        - Src:             'gbox.c:891,9'
          Dst:             uint32_hilbert
    - functionName:    gbox_float_round
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          110
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - next_float_down
        - next_float_up
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:820,15'
          Dst:             next_float_down
        - Src:             'gbox.c:821,15'
          Dst:             next_float_up
        - Src:             'gbox.c:823,15'
          Dst:             next_float_down
        - Src:             'gbox.c:824,15'
          Dst:             next_float_up
        - Src:             'gbox.c:828,16'
          Dst:             next_float_down
        - Src:             'gbox.c:829,16'
          Dst:             next_float_up
        - Src:             'gbox.c:834,16'
          Dst:             next_float_down
        - Src:             'gbox.c:835,16'
          Dst:             next_float_up
    - functionName:    lwcollection_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - gbox_duplicate
        - gbox_merge
        - lwgeom_calculate_gbox_cartesian
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:731,8'
          Dst:             lwgeom_calculate_gbox_cartesian
        - Src:             'gbox.c:739,5'
          Dst:             gbox_duplicate
        - Src:             'gbox.c:744,5'
          Dst:             gbox_merge
    - functionName:    lwgeom_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          167
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - lwcircstring_calculate_gbox_cartesian
        - lwcollection_calculate_gbox_cartesian
        - lwerror
        - lwline_calculate_gbox_cartesian
        - lwpoint_calculate_gbox_cartesian
        - lwpoly_calculate_gbox_cartesian
        - lwtriangle_calculate_gbox_cartesian
        - lwtype_name
        - ptarray_calculate_gbox_cartesian
      functionUses:    3
      BranchProfiles:
        - Branch String:   'gbox.c:770,2'
          Branch Sides:    []
      Callsites:
        - Src:             'gbox.c:773,10'
          Dst:             lwpoint_calculate_gbox_cartesian
        - Src:             'gbox.c:775,10'
          Dst:             lwline_calculate_gbox_cartesian
        - Src:             'gbox.c:777,10'
          Dst:             lwcircstring_calculate_gbox_cartesian
        - Src:             'gbox.c:779,10'
          Dst:             lwpoly_calculate_gbox_cartesian
        - Src:             'gbox.c:781,10'
          Dst:             lwtriangle_calculate_gbox_cartesian
        - Src:             'gbox.c:792,10'
          Dst:             lwcollection_calculate_gbox_cartesian
        - Src:             'gbox.c:808,11'
          Dst:             ptarray_calculate_gbox_cartesian
        - Src:             'gbox.c:814,54'
          Dst:             lwtype_name
        - Src:             'gbox.c:814,2'
          Dst:             lwerror
    - functionName:    gbox_duplicate
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_merge
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          266
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoint_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_calculate_gbox_cartesian
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:694,9'
          Dst:             ptarray_calculate_gbox_cartesian
    - functionName:    lwline_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_calculate_gbox_cartesian
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:700,9'
          Dst:             ptarray_calculate_gbox_cartesian
    - functionName:    lwcircstring_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          133
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - gbox_merge
        - getPoint4d_p
        - lw_arc_calculate_gbox_cartesian
        - lwflags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:670,6'
          Dst:             lwflags
        - Src:             'gbox.c:678,3'
          Dst:             getPoint4d_p
        - Src:             'gbox.c:679,3'
          Dst:             getPoint4d_p
        - Src:             'gbox.c:680,3'
          Dst:             getPoint4d_p
        - Src:             'gbox.c:682,7'
          Dst:             lw_arc_calculate_gbox_cartesian
        - Src:             'gbox.c:685,3'
          Dst:             gbox_merge
    - functionName:    lwpoly_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ptarray_calculate_gbox_cartesian
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:714,9'
          Dst:             ptarray_calculate_gbox_cartesian
    - functionName:    lwtriangle_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_calculate_gbox_cartesian
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:706,9'
          Dst:             ptarray_calculate_gbox_cartesian
    - functionName:    ptarray_calculate_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          140
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - lwflags
        - ptarray_calculate_gbox_cartesian_2d
        - ptarray_calculate_gbox_cartesian_3d
        - ptarray_calculate_gbox_cartesian_4d
      functionUses:    6
      BranchProfiles:
        - Branch String:   'gbox.c:626,2'
          Branch Sides:    []
      Callsites:
        - Src:             'gbox.c:622,16'
          Dst:             lwflags
        - Src:             'gbox.c:630,3'
          Dst:             ptarray_calculate_gbox_cartesian_2d
        - Src:             'gbox.c:637,4'
          Dst:             ptarray_calculate_gbox_cartesian_3d
        - Src:             'gbox.c:643,4'
          Dst:             ptarray_calculate_gbox_cartesian_3d
        - Src:             'gbox.c:653,3'
          Dst:             ptarray_calculate_gbox_cartesian_4d
    - functionName:    ptarray_calculate_gbox_cartesian_2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          166
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint2d_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:551,21'
          Dst:             getPoint2d_cp
        - Src:             'gbox.c:558,7'
          Dst:             getPoint2d_cp
    - functionName:    ptarray_calculate_gbox_cartesian_3d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          227
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - getPoint3d_cp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:570,21'
          Dst:             getPoint3d_cp
        - Src:             'gbox.c:578,7'
          Dst:             getPoint3d_cp
    - functionName:    ptarray_calculate_gbox_cartesian_4d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          288
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - getPoint4d_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:591,21'
          Dst:             getPoint4d_cp
        - Src:             'gbox.c:600,7'
          Dst:             getPoint4d_cp
    - functionName:    gbox_serialized_size
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_copy
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:440,22'
          Dst:             lwalloc
    - functionName:    gbox_to_string
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          211
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
        - lwstrdup
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:410,10'
          Dst:             lwstrdup
        - Src:             'gbox.c:412,15'
          Dst:             lwalloc
        - Src:             'gbox.c:416,3'
          Dst:             snprintf
        - Src:             'gbox.c:421,3'
          Dst:             snprintf
        - Src:             'gbox.c:426,3'
          Dst:             snprintf
        - Src:             'gbox.c:431,3'
          Dst:             snprintf
        - Src:             'gbox.c:434,2'
          Dst:             snprintf
    - functionName:    gbox_from_string
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          143
      EdgeCount:       25
      CyclomaticComplexity: 9
      functionsReached:
        - gbox_new
        - lwflags
        - strstr
        - strtod
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:380,21'
          Dst:             strstr
        - Src:             'gbox.c:381,24'
          Dst:             lwflags
        - Src:             'gbox.c:381,15'
          Dst:             gbox_new
        - Src:             'gbox.c:384,15'
          Dst:             strtod
        - Src:             'gbox.c:387,15'
          Dst:             strtod
        - Src:             'gbox.c:390,15'
          Dst:             strtod
        - Src:             'gbox.c:393,15'
          Dst:             strtod
        - Src:             'gbox.c:396,15'
          Dst:             strtod
        - Src:             'gbox.c:399,15'
          Dst:             strtod
    - functionName:    strstr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_new
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gbox_init
        - lwalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:34,19'
          Dst:             lwalloc
        - Src:             'gbox.c:35,2'
          Dst:             gbox_init
    - functionName:    strtod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_init
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_contains_point2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_within_2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_contains_2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_overlaps_2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - lwerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:328,3'
          Dst:             lwerror
    - functionName:    gbox_overlaps
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          260
      EdgeCount:       63
      CyclomaticComplexity: 19
      functionsReached:
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:288,3'
          Dst:             lwerror
    - functionName:    gbox_contains_point3d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          89
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_init_point3d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          35
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_merge_point3d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          140
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_is_valid
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          212
      EdgeCount:       65
      CyclomaticComplexity: 20
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_same_2d_float
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          141
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - next_float_down
        - next_float_up
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:189,33'
          Dst:             next_float_up
        - Src:             'gbox.c:189,62'
          Dst:             next_float_up
        - Src:             'gbox.c:190,33'
          Dst:             next_float_up
        - Src:             'gbox.c:190,62'
          Dst:             next_float_up
        - Src:             'gbox.c:191,33'
          Dst:             next_float_down
        - Src:             'gbox.c:191,62'
          Dst:             next_float_down
        - Src:             'gbox.c:192,33'
          Dst:             next_float_down
        - Src:             'gbox.c:192,62'
          Dst:             next_float_down
    - functionName:    gbox_same_2d
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_same
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          149
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - gbox_same_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:169,7'
          Dst:             gbox_same_2d
    - functionName:    gbox_union
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          219
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_expand_xyzm
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          95
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_expand
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          103
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    box3d_to_gbox
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:85,6'
          Dst:             lwalloc
    - functionName:    box3d_from_gbox
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          78
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwalloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:58,6'
          Dst:             lwalloc
    - functionName:    gbox_clone
      functionSourceFile: '/src/postgis/liblwgeom/gbox.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'gbox.c:47,12'
          Dst:             lwalloc
    - functionName:    ptarray_force_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3009
      functionLinenumberEnd: 3027
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint4d_p
        - latitude_degrees_normalize
        - longitude_degrees_normalize
        - ptarray_set_point4d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3018,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:3021,11'
          Dst:             longitude_degrees_normalize
        - Src:             'lwgeodetic.c:3022,11'
          Dst:             latitude_degrees_normalize
        - Src:             'lwgeodetic.c:3023,4'
          Dst:             ptarray_set_point4d
    - functionName:    longitude_degrees_normalize
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          93
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - remainder
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:109,9'
          Dst:             remainder
        - Src:             'lwgeodetic.c:112,9'
          Dst:             remainder
    - functionName:    latitude_degrees_normalize
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - remainder
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:137,9'
          Dst:             remainder
        - Src:             'lwgeodetic.c:140,9'
          Dst:             remainder
    - functionName:    remainder
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2917
      functionLinenumberEnd: 2932
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          76
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint2d_p
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2925,3'
          Dst:             getPoint2d_p
    - functionName:    gbox_check_poles
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         64
      ICount:          297
      EdgeCount:       87
      CyclomaticComplexity: 25
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    ptarray_segmentize_sphere_edge_recursive
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1592
      functionLinenumberEnd: 1630
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          147
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cart2geog
        - normalize
        - ptarray_append_point
        - ptarray_segmentize_sphere_edge_recursive
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1601,3'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1606,10'
          Dst:             ptarray_append_point
        - Src:             'lwgeodetic.c:1616,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1620,3'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1626,3'
          Dst:             ptarray_segmentize_sphere_edge_recursive
        - Src:             'lwgeodetic.c:1627,3'
          Dst:             ptarray_segmentize_sphere_edge_recursive
    - functionName:    cart2geog
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    normalize
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 616
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          75
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_geocentric_get_gbox_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3629
      functionLinenumberEnd: 3750
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          418
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - cart2geog
        - lwerror
        - normalize
        - remainder
        - vector_angle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3642,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:3671,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:3676,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:3685,18'
          Dst:             vector_angle
        - Src:             'lwgeodetic.c:3695,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:3731,11'
          Dst:             remainder
        - Src:             'lwgeodetic.c:3732,11'
          Dst:             remainder
    - functionName:    vector_angle
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cross_product
        - dot_product
        - normalize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:510,2'
          Dst:             cross_product
        - Src:             'lwgeodetic.c:511,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:512,2'
          Dst:             cross_product
        - Src:             'lwgeodetic.c:514,6'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:515,6'
          Dst:             dot_product
    - functionName:    cross_product
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          64
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dot_product
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    point3d_equals
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dot_product_side
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3407
      functionLinenumberEnd: 3414
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dot_product
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3408,14'
          Dst:             dot_product
    - functionName:    point_in_cone
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3340
      functionLinenumberEnd: 3397
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - dot_product
        - normalize
        - point3d_equals
        - vector_difference
        - vector_sum
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3345,6'
          Dst:             point3d_equals
        - Src:             'lwgeodetic.c:3345,31'
          Dst:             point3d_equals
        - Src:             'lwgeodetic.c:3349,2'
          Dst:             vector_sum
        - Src:             'lwgeodetic.c:3350,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:3353,19'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:3359,16'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:3383,3'
          Dst:             vector_difference
        - Src:             'lwgeodetic.c:3384,3'
          Dst:             vector_difference
        - Src:             'lwgeodetic.c:3385,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:3386,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:3387,7'
          Dst:             dot_product
    - functionName:    vector_sum
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vector_difference
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          40
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_nudge_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3233
      functionLinenumberEnd: 3274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          172
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - getPoint4d_p
        - lwerror
        - ptarray_set_point4d
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3242,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:3246,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:3269,4'
          Dst:             ptarray_set_point4d
    - functionName:    lwgeom_nudge_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3285
      functionLinenumberEnd: 3332
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          198
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - lwerror
        - lwgeom_is_empty
        - lwgeom_nudge_geodetic
        - lwtype_is_collection
        - lwtype_name
        - ptarray_nudge_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3293,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:3299,10'
          Dst:             ptarray_nudge_geodetic
        - Src:             'lwgeodetic.c:3302,10'
          Dst:             ptarray_nudge_geodetic
        - Src:             'lwgeodetic.c:3309,12'
          Dst:             ptarray_nudge_geodetic
        - Src:             'lwgeodetic.c:3316,10'
          Dst:             ptarray_nudge_geodetic
        - Src:             'lwgeodetic.c:3318,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:3324,12'
          Dst:             lwgeom_nudge_geodetic
        - Src:             'lwgeodetic.c:3330,67'
          Dst:             lwtype_name
        - Src:             'lwgeodetic.c:3330,2'
          Dst:             lwerror
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    14
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_perimeter_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3185
      functionLinenumberEnd: 3223
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          142
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - lwgeom_is_empty
        - lwgeom_perimeter_spheroid
        - lwtype_is_collection
        - ptarray_length_spheroid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3193,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:3203,17'
          Dst:             ptarray_length_spheroid
        - Src:             'lwgeodetic.c:3209,10'
          Dst:             ptarray_length_spheroid
        - Src:             'lwgeodetic.c:3211,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:3217,17'
          Dst:             lwgeom_perimeter_spheroid
    - functionName:    ptarray_length_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3093
      functionLinenumberEnd: 3143
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          181
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - geographic_point_init
        - getPoint4d_p
        - sphere_distance
        - spheroid_distance
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3110,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:3111,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:3119,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:3120,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:3126,28'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:3129,16'
          Dst:             spheroid_distance
    - functionName:    geographic_point_init
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - latitude_radians_normalize
        - longitude_radians_normalize
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:182,11'
          Dst:             latitude_radians_normalize
        - Src:             'lwgeodetic.c:183,11'
          Dst:             longitude_radians_normalize
    - functionName:    sphere_distance
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 914
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          133
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    latitude_radians_normalize
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - remainder
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:82,9'
          Dst:             remainder
        - Src:             'lwgeodetic.c:85,9'
          Dst:             remainder
    - functionName:    longitude_radians_normalize
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          104
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - remainder
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:58,9'
          Dst:             remainder
        - Src:             'lwgeodetic.c:61,9'
          Dst:             remainder
    - functionName:    lwgeom_length_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3146
      functionLinenumberEnd: 3182
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          175
      EdgeCount:       46
      CyclomaticComplexity: 15
      functionsReached:
        - lwerror
        - lwgeom_is_empty
        - lwgeom_length_spheroid
        - lwtype_is_collection
        - ptarray_length_spheroid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3154,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:3167,10'
          Dst:             ptarray_length_spheroid
        - Src:             'lwgeodetic.c:3169,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:3175,14'
          Dst:             lwgeom_length_spheroid
        - Src:             'lwgeodetic.c:3180,2'
          Dst:             lwerror
    - functionName:    lwcollection_force_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3057
      functionLinenumberEnd: 3067
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_force_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3064,8'
          Dst:             lwgeom_force_geodetic
    - functionName:    lwgeom_force_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3071
      functionLinenumberEnd: 3089
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          70
      EdgeCount:       27
      CyclomaticComplexity: 15
      functionsReached:
        - lwcollection_force_geodetic
        - lwerror
        - lwgeom_get_type
        - lwline_force_geodetic
        - lwpoint_force_geodetic
        - lwpoly_force_geodetic
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeodetic.c:3072,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeodetic.c:3072,11'
          Dst:             lwgeom_get_type
        - Src:             'lwgeodetic.c:3075,11'
          Dst:             lwpoint_force_geodetic
        - Src:             'lwgeodetic.c:3077,11'
          Dst:             lwline_force_geodetic
        - Src:             'lwgeodetic.c:3079,11'
          Dst:             lwpoly_force_geodetic
        - Src:             'lwgeodetic.c:3084,11'
          Dst:             lwcollection_force_geodetic
        - Src:             'lwgeodetic.c:3086,51'
          Dst:             lwgeom_get_type
        - Src:             'lwgeodetic.c:3086,4'
          Dst:             lwerror
    - functionName:    lwgeom_get_type
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoint_force_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3031
      functionLinenumberEnd: 3033
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_force_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3033,9'
          Dst:             ptarray_force_geodetic
    - functionName:    lwline_force_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3037
      functionLinenumberEnd: 3039
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_force_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3039,9'
          Dst:             ptarray_force_geodetic
    - functionName:    lwpoly_force_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3043
      functionLinenumberEnd: 3053
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ptarray_force_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3050,8'
          Dst:             ptarray_force_geodetic
    - functionName:    lwcollection_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2967
      functionLinenumberEnd: 2977
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_check_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2973,8'
          Dst:             lwgeom_check_geodetic
    - functionName:    lwgeom_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2980
      functionLinenumberEnd: 3006
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - lwcollection_check_geodetic
        - lwerror
        - lwgeom_is_empty
        - lwline_check_geodetic
        - lwpoint_check_geodetic
        - lwpoly_check_geodetic
        - lwtriangle_check_geodetic
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeodetic.c:2984,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeodetic.c:2981,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2987,10'
          Dst:             lwpoint_check_geodetic
        - Src:             'lwgeodetic.c:2989,10'
          Dst:             lwline_check_geodetic
        - Src:             'lwgeodetic.c:2991,10'
          Dst:             lwpoly_check_geodetic
        - Src:             'lwgeodetic.c:2993,10'
          Dst:             lwtriangle_check_geodetic
        - Src:             'lwgeodetic.c:3000,10'
          Dst:             lwcollection_check_geodetic
        - Src:             'lwgeodetic.c:3003,23'
          Dst:             lwtype_name
        - Src:             'lwgeodetic.c:3002,3'
          Dst:             lwerror
    - functionName:    lwpoint_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2935
      functionLinenumberEnd: 2937
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_check_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2937,9'
          Dst:             ptarray_check_geodetic
    - functionName:    lwline_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2941
      functionLinenumberEnd: 2943
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_check_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2943,9'
          Dst:             ptarray_check_geodetic
    - functionName:    lwpoly_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2947
      functionLinenumberEnd: 2957
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ptarray_check_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2953,8'
          Dst:             ptarray_check_geodetic
    - functionName:    lwtriangle_check_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2960
      functionLinenumberEnd: 2962
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_check_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2962,9'
          Dst:             ptarray_check_geodetic
    - functionName:    lwcollection_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2842
      functionLinenumberEnd: 2874
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          136
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - gbox_copy
        - gbox_duplicate
        - gbox_merge
        - lwfree
        - lwgeom_calculate_gbox_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2855,8'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2859,5'
          Dst:             lwfree
        - Src:             'lwgeodetic.c:2860,27'
          Dst:             gbox_copy
        - Src:             'lwgeodetic.c:2863,5'
          Dst:             gbox_duplicate
        - Src:             'lwgeodetic.c:2868,5'
          Dst:             gbox_merge
    - functionName:    lwgeom_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2877
      functionLinenumberEnd: 2911
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          114
      EdgeCount:       31
      CyclomaticComplexity: 17
      functionsReached:
        - lwcollection_calculate_gbox_geodetic
        - lwerror
        - lwflags
        - lwline_calculate_gbox_geodetic
        - lwpoint_calculate_gbox_geodetic
        - lwpolygon_calculate_gbox_geodetic
        - lwtriangle_calculate_gbox_geodetic
        - lwtype_name
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lwgeodetic.c:2884,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeodetic.c:2882,16'
          Dst:             lwflags
        - Src:             'lwgeodetic.c:2887,12'
          Dst:             lwpoint_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2890,12'
          Dst:             lwline_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2893,12'
          Dst:             lwpolygon_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2896,12'
          Dst:             lwtriangle_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2904,12'
          Dst:             lwcollection_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2908,23'
          Dst:             lwtype_name
        - Src:             'lwgeodetic.c:2907,3'
          Dst:             lwerror
    - functionName:    lwpoint_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2793
      functionLinenumberEnd: 2795
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_calculate_gbox_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2795,9'
          Dst:             ptarray_calculate_gbox_geodetic
    - functionName:    lwline_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2799
      functionLinenumberEnd: 2801
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_calculate_gbox_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2801,9'
          Dst:             ptarray_calculate_gbox_geodetic
    - functionName:    lwpolygon_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2805
      functionLinenumberEnd: 2832
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - gbox_check_poles
        - gbox_duplicate
        - gbox_merge
        - ptarray_calculate_gbox_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2815,8'
          Dst:             ptarray_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2819,4'
          Dst:             gbox_duplicate
        - Src:             'lwgeodetic.c:2824,4'
          Dst:             gbox_merge
        - Src:             'lwgeodetic.c:2829,2'
          Dst:             gbox_check_poles
    - functionName:    lwtriangle_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2835
      functionLinenumberEnd: 2837
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_calculate_gbox_geodetic
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2837,9'
          Dst:             ptarray_calculate_gbox_geodetic
    - functionName:    ptarray_calculate_gbox_geodetic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2738
      functionLinenumberEnd: 2790
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          133
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - edge_calculate_gbox
        - gbox_duplicate
        - gbox_init
        - gbox_merge
        - getPoint2d_cp
        - ll2cart
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2748,2'
          Dst:             gbox_init
        - Src:             'lwgeodetic.c:2755,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2756,3'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2763,6'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2764,2'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2769,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2770,3'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2772,3'
          Dst:             edge_calculate_gbox
        - Src:             'lwgeodetic.c:2777,4'
          Dst:             gbox_duplicate
        - Src:             'lwgeodetic.c:2783,4'
          Dst:             gbox_merge
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    ll2cart
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          45
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edge_calculate_gbox
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          225
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - dot_product
        - gbox_init_point3d
        - gbox_merge_point3d
        - lw_segment_side
        - lwerror
        - normalize2d
        - p3d_same
        - unit_normal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1370,2'
          Dst:             gbox_init_point3d
        - Src:             'lwgeodetic.c:1371,2'
          Dst:             gbox_merge_point3d
        - Src:             'lwgeodetic.c:1374,7'
          Dst:             p3d_same
        - Src:             'lwgeodetic.c:1380,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:1385,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:1386,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:1391,9'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:1392,9'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:1402,11'
          Dst:             lw_segment_side
        - Src:             'lwgeodetic.c:1408,10'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:1409,10'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:1410,3'
          Dst:             normalize2d
        - Src:             'lwgeodetic.c:1415,8'
          Dst:             lw_segment_side
        - Src:             'lwgeodetic.c:1422,4'
          Dst:             gbox_merge_point3d
    - functionName:    unit_normal
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - cross_product
        - dot_product
        - normalize
        - vector_difference
        - vector_sum
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:543,17'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:549,3'
          Dst:             vector_sum
        - Src:             'lwgeodetic.c:550,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:555,3'
          Dst:             vector_difference
        - Src:             'lwgeodetic.c:556,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:565,2'
          Dst:             cross_product
        - Src:             'lwgeodetic.c:566,2'
          Dst:             normalize
    - functionName:    normalize2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          57
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edge_intersects
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3422
      functionLinenumberEnd: 3524
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          330
      EdgeCount:       78
      CyclomaticComplexity: 23
      functionsReached:
        - dot_product
        - dot_product_side
        - point_in_cone
        - unit_normal
        - vector_scale
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3429,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:3430,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:3433,11'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:3445,8'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3445,37'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3446,8'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3446,37'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3456,12'
          Dst:             dot_product_side
        - Src:             'lwgeodetic.c:3457,12'
          Dst:             dot_product_side
        - Src:             'lwgeodetic.c:3458,12'
          Dst:             dot_product_side
        - Src:             'lwgeodetic.c:3459,12'
          Dst:             dot_product_side
        - Src:             'lwgeodetic.c:3480,3'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:3481,8'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3481,38'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3487,3'
          Dst:             vector_scale
        - Src:             'lwgeodetic.c:3488,8'
          Dst:             point_in_cone
        - Src:             'lwgeodetic.c:3488,38'
          Dst:             point_in_cone
    - functionName:    vector_scale
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_intersects_line
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2582
      functionLinenumberEnd: 2618
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          165
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - edge_intersects
        - getPoint2d_cp
        - ll2cart
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2589,24'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2590,24'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2593,4'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2594,4'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2598,25'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2599,25'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2602,5'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2603,5'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:2605,17'
          Dst:             edge_intersects
    - functionName:    lwpoly_covers_pointarray
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2563
      functionLinenumberEnd: 2575
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
        - lwpoly_covers_point2d
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2566,31'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2568,20'
          Dst:             lwpoly_covers_point2d
    - functionName:    lwpoly_covers_point2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2398
      functionLinenumberEnd: 2474
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          152
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - gbox_contains_point3d
        - geog2cart
        - geographic_point_init
        - lwgeom_calculate_gbox_geodetic
        - lwgeom_is_empty
        - lwpoly_pt_outside
        - ptarray_contains_point_sphere
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2411,17'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2421,3'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2424,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2425,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:2426,9'
          Dst:             gbox_contains_point3d
        - Src:             'lwgeodetic.c:2433,2'
          Dst:             lwpoly_pt_outside
        - Src:             'lwgeodetic.c:2447,9'
          Dst:             ptarray_contains_point_sphere
        - Src:             'lwgeodetic.c:2460,8'
          Dst:             ptarray_contains_point_sphere
    - functionName:    geog2cart
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          39
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_pt_outside
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1482
      functionLinenumberEnd: 1500
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_pt_outside
        - lwgeom_calculate_gbox_geodetic
        - lwpoly_pt_outside_hack
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1487,8'
          Dst:             gbox_pt_outside
        - Src:             'lwgeodetic.c:1492,3'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:1493,8'
          Dst:             gbox_pt_outside
        - Src:             'lwgeodetic.c:1497,10'
          Dst:             lwpoly_pt_outside_hack
    - functionName:    ptarray_contains_point_sphere
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3535
      functionLinenumberEnd: 3620
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          163
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - edge_intersects
        - getPoint2d_p
        - ll2cart
        - point3d_equals
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:3546,2'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:3547,2'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:3550,2'
          Dst:             getPoint2d_p
        - Src:             'lwgeodetic.c:3551,2'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:3560,3'
          Dst:             getPoint2d_p
        - Src:             'lwgeodetic.c:3561,3'
          Dst:             ll2cart
        - Src:             'lwgeodetic.c:3564,8'
          Dst:             point3d_equals
        - Src:             'lwgeodetic.c:3570,8'
          Dst:             point3d_equals
        - Src:             'lwgeodetic.c:3576,11'
          Dst:             edge_intersects
    - functionName:    gbox_pt_outside
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1507
      functionLinenumberEnd: 1584
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          314
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - cart2geog
        - gbox_contains_point3d
        - normalize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1562,4'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1564,11'
          Dst:             gbox_contains_point3d
        - Src:             'lwgeodetic.c:1568,5'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1569,5'
          Dst:             cart2geog
    - functionName:    lwpoly_pt_outside_hack
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1479
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          109
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - cart2geog
        - cross_product
        - geog2cart
        - geographic_point_init
        - getPoint4d_p
        - lwgeom_is_empty
        - normalize
        - vector_scale
        - vector_sum
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1447,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:1456,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:1457,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:1459,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1460,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1461,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1462,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1464,2'
          Dst:             vector_sum
        - Src:             'lwgeodetic.c:1465,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1467,2'
          Dst:             cross_product
        - Src:             'lwgeodetic.c:1468,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1470,2'
          Dst:             vector_scale
        - Src:             'lwgeodetic.c:1472,2'
          Dst:             vector_sum
        - Src:             'lwgeodetic.c:1473,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1475,2'
          Dst:             cart2geog
    - functionName:    lwline_covers_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2653
      functionLinenumberEnd: 2735
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          252
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - edge_contains_point
        - geographic_point_init
        - getPoint2d_cp
        - lwline_covers_lwpoint
        - lwline_get_lwpoint
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2661,40'
          Dst:             lwline_get_lwpoint
        - Src:             'lwgeodetic.c:2661,9'
          Dst:             lwline_covers_lwpoint
        - Src:             'lwgeodetic.c:2668,40'
          Dst:             lwline_get_lwpoint
        - Src:             'lwgeodetic.c:2668,9'
          Dst:             lwline_covers_lwpoint
        - Src:             'lwgeodetic.c:2679,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2680,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2681,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2682,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2684,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2685,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2686,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2696,9'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:2701,4'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2702,4'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2703,4'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2706,9'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:2724,7'
          Dst:             edge_contains_point
    - functionName:    lwline_covers_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2624
      functionLinenumberEnd: 2645
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          90
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - edge_contains_point
        - geographic_point_init
        - getPoint2d_cp
        - lwpoint_get_x
        - lwpoint_get_y
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2631,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2632,23'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2634,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2635,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2637,25'
          Dst:             lwpoint_get_x
        - Src:             'lwgeodetic.c:2637,49'
          Dst:             lwpoint_get_y
        - Src:             'lwgeodetic.c:2637,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2639,8'
          Dst:             edge_contains_point
    - functionName:    edge_contains_point
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - edge_point_in_cone
        - edge_point_on_plane
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:988,7'
          Dst:             edge_point_in_cone
        - Src:             'lwgeodetic.c:988,35'
          Dst:             edge_point_on_plane
    - functionName:    edge_point_in_cone
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - dot_product
        - geog2cart
        - normalize
        - vector_sum
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:740,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:741,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:745,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:747,2'
          Dst:             vector_sum
        - Src:             'lwgeodetic.c:748,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:750,15'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:753,15'
          Dst:             dot_product
    - functionName:    edge_point_on_plane
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - edge_point_side
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:725,13'
          Dst:             edge_point_side
    - functionName:    edge_point_side
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dot_product
        - geog2cart
        - normalize
        - robust_cross_product
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:699,2'
          Dst:             robust_cross_product
        - Src:             'lwgeodetic.c:700,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:701,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:703,6'
          Dst:             dot_product
    - functionName:    robust_cross_product
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          114
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_covers_lwpoly
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2482
      functionLinenumberEnd: 2521
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          127
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - lwgeom_is_empty
        - lwpoly_covers_pointarray
        - lwpoly_intersects_line
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2486,18'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2493,18'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2502,19'
          Dst:             lwpoly_covers_pointarray
        - Src:             'lwgeodetic.c:2512,18'
          Dst:             lwpoly_intersects_line
    - functionName:    lwpoly_covers_lwline
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2527
      functionLinenumberEnd: 2557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          84
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - lwgeom_is_empty
        - lwpoly_covers_pointarray
        - lwpoly_intersects_line
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2529,19'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2536,19'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2542,20'
          Dst:             lwpoly_covers_pointarray
        - Src:             'lwgeodetic.c:2549,19'
          Dst:             lwpoly_intersects_line
    - functionName:    lwgeom_covers_lwgeom_sphere
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2293
      functionLinenumberEnd: 2390
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          393
      EdgeCount:       103
      CyclomaticComplexity: 28
      functionsReached:
        - getPoint2d_p
        - lwerror
        - lwgeom_calculate_gbox_geodetic
        - lwgeom_covers_lwgeom_sphere
        - lwline_covers_lwline
        - lwline_covers_lwpoint
        - lwpoint_same
        - lwpoly_covers_lwline
        - lwpoly_covers_lwpoly
        - lwpoly_covers_point2d
        - lwtype_is_collection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2317,3'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2323,3'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2330,3'
          Dst:             getPoint2d_p
        - Src:             'lwgeodetic.c:2331,10'
          Dst:             lwpoly_covers_point2d
        - Src:             'lwgeodetic.c:2335,10'
          Dst:             lwpoly_covers_lwline
        - Src:             'lwgeodetic.c:2339,10'
          Dst:             lwpoly_covers_lwpoly
        - Src:             'lwgeodetic.c:2343,10'
          Dst:             lwline_covers_lwpoint
        - Src:             'lwgeodetic.c:2347,10'
          Dst:             lwline_covers_lwline
        - Src:             'lwgeodetic.c:2351,10'
          Dst:             lwpoint_same
        - Src:             'lwgeodetic.c:2355,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:2362,9'
          Dst:             lwgeom_covers_lwgeom_sphere
        - Src:             'lwgeodetic.c:2371,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:2378,11'
          Dst:             lwgeom_covers_lwgeom_sphere
        - Src:             'lwgeodetic.c:2387,2'
          Dst:             lwerror
    - functionName:    ptarray_distance_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1757
      functionLinenumberEnd: 1943
      functionDepth:   0
      returnType:      double
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         77
      ICount:          549
      EdgeCount:       104
      CyclomaticComplexity: 29
      functionsReached:
        - edge_distance_to_edge
        - edge_distance_to_point
        - edge_intersects
        - geog2cart
        - geographic_point_init
        - getPoint2d_cp
        - lwnotice
        - sphere_distance
        - spheroid_distance
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1777,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1778,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1779,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1780,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1782,26'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:1790,11'
          Dst:             spheroid_distance
        - Src:             'lwgeodetic.c:1813,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1814,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1817,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1818,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1824,8'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1825,4'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1827,20'
          Dst:             edge_distance_to_point
        - Src:             'lwgeodetic.c:1850,10'
          Dst:             spheroid_distance
        - Src:             'lwgeodetic.c:1864,11'
          Dst:             spheroid_distance
        - Src:             'lwgeodetic.c:1869,6'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1870,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1871,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1877,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1878,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1879,3'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1882,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1883,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1884,3'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1890,8'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:1891,4'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1892,4'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1899,31'
          Dst:             edge_intersects
        - Src:             'lwgeodetic.c:1904,20'
          Dst:             edge_distance_to_edge
        - Src:             'lwgeodetic.c:1921,10'
          Dst:             spheroid_distance
        - Src:             'lwgeodetic.c:1935,3'
          Dst:             lwnotice
        - Src:             'lwgeodetic.c:1942,10'
          Dst:             spheroid_distance
    - functionName:    edge_distance_to_point
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          150
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - cart2geog
        - dot_product
        - edge_point_in_cone
        - geog2cart
        - geographic_point_equals
        - normalize
        - robust_cross_product
        - sphere_distance
        - vector_difference
        - vector_scale
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1177,7'
          Dst:             geographic_point_equals
        - Src:             'lwgeodetic.c:1182,10'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:1185,2'
          Dst:             robust_cross_product
        - Src:             'lwgeodetic.c:1186,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1187,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1188,19'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:1188,2'
          Dst:             vector_scale
        - Src:             'lwgeodetic.c:1189,2'
          Dst:             vector_difference
        - Src:             'lwgeodetic.c:1190,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1191,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1192,7'
          Dst:             edge_point_in_cone
        - Src:             'lwgeodetic.c:1194,8'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:1196,7'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:1197,7'
          Dst:             sphere_distance
    - functionName:    edge_distance_to_edge
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      double
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          137
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - edge_distance_to_point
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1227,15'
          Dst:             edge_distance_to_point
        - Src:             'lwgeodetic.c:1228,15'
          Dst:             edge_distance_to_point
        - Src:             'lwgeodetic.c:1229,15'
          Dst:             edge_distance_to_point
        - Src:             'lwgeodetic.c:1230,15'
          Dst:             edge_distance_to_point
    - functionName:    geographic_point_equals
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_distance_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2067
      functionLinenumberEnd: 2289
      functionDepth:   0
      returnType:      double
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         135
      ICount:          833
      EdgeCount:       182
      CyclomaticComplexity: 49
      functionsReached:
        - gbox_init
        - gbox_overlaps
        - getPoint2d_cp
        - lwerror
        - lwgeom_calculate_gbox_geodetic
        - lwgeom_distance_spheroid
        - lwgeom_is_empty
        - lwpoly_covers_point2d
        - lwtype_is_collection
        - lwtype_name
        - ptarray_distance_spheroid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2072,2'
          Dst:             gbox_init
        - Src:             'lwgeodetic.c:2073,2'
          Dst:             gbox_init
        - Src:             'lwgeodetic.c:2082,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2082,35'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:2094,3'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2100,3'
          Dst:             lwgeom_calculate_gbox_geodetic
        - Src:             'lwgeodetic.c:2103,7'
          Dst:             gbox_overlaps
        - Src:             'lwgeodetic.c:2122,10'
          Dst:             ptarray_distance_spheroid
        - Src:             'lwgeodetic.c:2145,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2148,8'
          Dst:             lwpoly_covers_point2d
        - Src:             'lwgeodetic.c:2156,27'
          Dst:             ptarray_distance_spheroid
        - Src:             'lwgeodetic.c:2185,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2190,8'
          Dst:             lwpoly_covers_point2d
        - Src:             'lwgeodetic.c:2198,27'
          Dst:             ptarray_distance_spheroid
        - Src:             'lwgeodetic.c:2221,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2222,7'
          Dst:             lwpoly_covers_point2d
        - Src:             'lwgeodetic.c:2225,7'
          Dst:             getPoint2d_cp
        - Src:             'lwgeodetic.c:2226,7'
          Dst:             lwpoly_covers_point2d
        - Src:             'lwgeodetic.c:2234,9'
          Dst:             ptarray_distance_spheroid
        - Src:             'lwgeodetic.c:2249,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:2257,27'
          Dst:             lwgeom_distance_spheroid
        - Src:             'lwgeodetic.c:2268,7'
          Dst:             lwtype_is_collection
        - Src:             'lwgeodetic.c:2276,27'
          Dst:             lwgeom_distance_spheroid
        - Src:             'lwgeodetic.c:2286,66'
          Dst:             lwtype_name
        - Src:             'lwgeodetic.c:2286,86'
          Dst:             lwtype_name
        - Src:             'lwgeodetic.c:2286,2'
          Dst:             lwerror
    - functionName:    lwgeom_azumith_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2058
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - geographic_point_init
        - lwpoint_get_x
        - lwpoint_get_y
        - spheroid_direction
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2038,7'
          Dst:             lwpoint_get_x
        - Src:             'lwgeodetic.c:2039,7'
          Dst:             lwpoint_get_y
        - Src:             'lwgeodetic.c:2040,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2043,7'
          Dst:             lwpoint_get_x
        - Src:             'lwgeodetic.c:2044,7'
          Dst:             lwpoint_get_y
        - Src:             'lwgeodetic.c:2045,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:2054,7'
          Dst:             spheroid_direction
    - functionName:    lwgeom_project_spheroid_lwpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2017
      functionLinenumberEnd: 2020
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_azumith_spheroid
        - lwgeom_project_spheroid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:2018,19'
          Dst:             lwgeom_azumith_spheroid
        - Src:             'lwgeodetic.c:2019,17'
          Dst:             lwgeom_project_spheroid
    - functionName:    lwgeom_project_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1968
      functionLinenumberEnd: 2014
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          164
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - geographic_point_init
        - latitude_radians_normalize
        - longitude_radians_normalize
        - lwerror
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_set_geodetic
        - lwpoint_as_lwgeom
        - lwpoint_get_m
        - lwpoint_get_x
        - lwpoint_get_y
        - lwpoint_get_z
        - lwpoint_make
        - spheroid_project
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1987,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:1992,6'
          Dst:             lwpoint_get_x
        - Src:             'lwgeodetic.c:1993,6'
          Dst:             lwpoint_get_y
        - Src:             'lwgeodetic.c:1994,23'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeodetic.c:1994,10'
          Dst:             lwgeom_has_z
        - Src:             'lwgeodetic.c:1995,23'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeodetic.c:1995,10'
          Dst:             lwgeom_has_m
        - Src:             'lwgeodetic.c:1996,2'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1999,6'
          Dst:             spheroid_project
        - Src:             'lwgeodetic.c:2002,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:2007,14'
          Dst:             longitude_radians_normalize
        - Src:             'lwgeodetic.c:2008,14'
          Dst:             latitude_radians_normalize
        - Src:             'lwgeodetic.c:2009,22'
          Dst:             lwpoint_get_z
        - Src:             'lwgeodetic.c:2010,22'
          Dst:             lwpoint_get_m
        - Src:             'lwgeodetic.c:2011,8'
          Dst:             lwpoint_make
        - Src:             'lwgeodetic.c:2012,22'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeodetic.c:2012,2'
          Dst:             lwgeom_set_geodetic
    - functionName:    lwgeom_area_sphere
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1951
      functionLinenumberEnd: 1954
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_area_spheroid
        - spheroid_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1953,2'
          Dst:             spheroid_init
        - Src:             'lwgeodetic.c:1954,9'
          Dst:             lwgeom_area_spheroid
    - functionName:    ptarray_segmentize_sphere
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1639
      functionLinenumberEnd: 1687
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - geog2cart
        - geographic_point_init
        - getPoint4d_p
        - lwerror
        - p4d_same
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_has_m
        - ptarray_has_z
        - ptarray_segmentize_sphere_edge_recursive
        - sphere_distance
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1641,13'
          Dst:             ptarray_has_z
        - Src:             'lwgeodetic.c:1642,13'
          Dst:             ptarray_has_m
        - Src:             'lwgeodetic.c:1650,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:1652,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:1655,11'
          Dst:             ptarray_construct_empty
        - Src:             'lwgeodetic.c:1660,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:1661,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeodetic.c:1662,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1663,3'
          Dst:             geographic_point_init
        - Src:             'lwgeodetic.c:1666,31'
          Dst:             p4d_same
        - Src:             'lwgeodetic.c:1670,14'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:1674,4'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1675,4'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1677,4'
          Dst:             ptarray_segmentize_sphere_edge_recursive
        - Src:             'lwgeodetic.c:1682,4'
          Dst:             ptarray_append_point
        - Src:             'lwgeodetic.c:1686,2'
          Dst:             ptarray_append_point
    - functionName:    lwgeom_segmentize_sphere
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1698
      functionLinenumberEnd: 1753
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          214
      EdgeCount:       30
      CyclomaticComplexity: 5
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_as_lwgeom
        - lwcollection_construct_empty
        - lwerror
        - lwgeom_as_lwcollection
        - lwgeom_as_lwline
        - lwgeom_as_lwpoly
        - lwgeom_clone
        - lwgeom_clone_deep
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwgeom_segmentize_sphere
        - lwline_as_lwgeom
        - lwline_construct
        - lwpoly_add_ring
        - lwpoly_as_lwgeom
        - lwpoly_construct_empty
        - lwtype_name
        - ptarray_segmentize_sphere
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeodetic.c:1713,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeodetic.c:1710,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeodetic.c:1711,10'
          Dst:             lwgeom_clone
        - Src:             'lwgeodetic.c:1717,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeodetic.c:1720,12'
          Dst:             lwgeom_as_lwline
        - Src:             'lwgeodetic.c:1721,12'
          Dst:             ptarray_segmentize_sphere
        - Src:             'lwgeodetic.c:1722,27'
          Dst:             lwline_construct
        - Src:             'lwgeodetic.c:1722,10'
          Dst:             lwline_as_lwgeom
        - Src:             'lwgeodetic.c:1725,15'
          Dst:             lwgeom_as_lwpoly
        - Src:             'lwgeodetic.c:1726,53'
          Dst:             lwgeom_has_z
        - Src:             'lwgeodetic.c:1726,75'
          Dst:             lwgeom_has_m
        - Src:             'lwgeodetic.c:1726,16'
          Dst:             lwpoly_construct_empty
        - Src:             'lwgeodetic.c:1729,13'
          Dst:             ptarray_segmentize_sphere
        - Src:             'lwgeodetic.c:1730,4'
          Dst:             lwpoly_add_ring
        - Src:             'lwgeodetic.c:1732,10'
          Dst:             lwpoly_as_lwgeom
        - Src:             'lwgeodetic.c:1737,14'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeodetic.c:1738,72'
          Dst:             lwgeom_has_z
        - Src:             'lwgeodetic.c:1738,94'
          Dst:             lwgeom_has_m
        - Src:             'lwgeodetic.c:1738,15'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeodetic.c:1741,39'
          Dst:             lwgeom_segmentize_sphere
        - Src:             'lwgeodetic.c:1741,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeodetic.c:1743,10'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwgeodetic.c:1747,25'
          Dst:             lwtype_name
        - Src:             'lwgeodetic.c:1746,3'
          Dst:             lwerror
        - Src:             'lwgeodetic.c:1751,2'
          Dst:             lwerror
    - functionName:    edge_calculate_gbox_slow
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1299
      functionLinenumberEnd: 1348
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          178
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - gbox_init_point3d
        - gbox_merge_point3d
        - geog2cart
        - normalize
        - sphere_distance
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1303,20'
          Dst:             sphere_distance
        - Src:             'lwgeodetic.c:1310,3'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1311,3'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1312,3'
          Dst:             gbox_init_point3d
        - Src:             'lwgeodetic.c:1313,3'
          Dst:             gbox_merge_point3d
        - Src:             'lwgeodetic.c:1329,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1330,2'
          Dst:             geog2cart
        - Src:             'lwgeodetic.c:1344,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1345,3'
          Dst:             gbox_merge_point3d
    - functionName:    sphere_project
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1269
      functionLinenumberEnd: 1295
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          120
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    edge_intersection
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          297
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - dot_product
        - edge_contains_point
        - geographic_point_equals
        - normalize
        - robust_cross_product
        - unit_normal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1088,7'
          Dst:             geographic_point_equals
        - Src:             'lwgeodetic.c:1093,7'
          Dst:             geographic_point_equals
        - Src:             'lwgeodetic.c:1098,7'
          Dst:             geographic_point_equals
        - Src:             'lwgeodetic.c:1103,7'
          Dst:             geographic_point_equals
        - Src:             'lwgeodetic.c:1109,2'
          Dst:             robust_cross_product
        - Src:             'lwgeodetic.c:1110,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1111,2'
          Dst:             robust_cross_product
        - Src:             'lwgeodetic.c:1112,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1116,7'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:1122,8'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1127,8'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1132,8'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1137,8'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1143,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:1149,7'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1149,37'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1162,8'
          Dst:             edge_contains_point
        - Src:             'lwgeodetic.c:1162,38'
          Dst:             edge_contains_point
    - functionName:    clairaut_geographic
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1072
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cart2geog
        - normalize
        - robust_cross_product
        - z_to_latitude
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1058,2'
          Dst:             robust_cross_product
        - Src:             'lwgeodetic.c:1059,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1060,2'
          Dst:             robust_cross_product
        - Src:             'lwgeodetic.c:1061,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:1064,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1065,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1066,15'
          Dst:             z_to_latitude
        - Src:             'lwgeodetic.c:1068,18'
          Dst:             z_to_latitude
    - functionName:    z_to_latitude
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1021
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clairaut_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cart2geog
        - unit_normal
        - z_to_latitude
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:1033,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:1034,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:1037,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1038,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:1039,15'
          Dst:             z_to_latitude
        - Src:             'lwgeodetic.c:1041,18'
          Dst:             z_to_latitude
    - functionName:    sphere_direction
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sphere_distance_cartesian
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 920
      functionLinenumberEnd: 921
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dot_product
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:921,14'
          Dst:             dot_product
        - Src:             'lwgeodetic.c:921,14'
          Dst:             dot_product
    - functionName:    edge_contains_coplanar_point
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         77
      ICount:          490
      EdgeCount:       105
      CyclomaticComplexity: 30
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crosses_dateline
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    y_to_z
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x_to_z
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vector_rotate
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          213
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - normalize
        - unit_normal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:583,2'
          Dst:             unit_normal
        - Src:             'lwgeodetic.c:609,2'
          Dst:             normalize
    - functionName:    gbox_centroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          120
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - cart2geog
        - latitude_degrees_normalize
        - longitude_degrees_normalize
        - normalize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:288,3'
          Dst:             normalize
        - Src:             'lwgeodetic.c:298,2'
          Dst:             normalize
        - Src:             'lwgeodetic.c:300,2'
          Dst:             cart2geog
        - Src:             'lwgeodetic.c:301,11'
          Dst:             longitude_degrees_normalize
        - Src:             'lwgeodetic.c:302,11'
          Dst:             latitude_degrees_normalize
    - functionName:    gbox_angular_width
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          182
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_angular_height
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          103
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - normalize
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeodetic.c:206,3'
          Dst:             normalize
    - functionName:    point_shift
      functionSourceFile: '/src/postgis/liblwgeom/lwgeodetic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          36
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_triangulate_polygon
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 1916
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          120
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - GEOS2LWGEOM
        - GEOSConstrainedDelaunayTriangulation
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1895,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1901,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1901,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1901,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1903,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1903,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1906,7'
          Dst:             GEOSConstrainedDelaunayTriangulation
        - Src:             'lwgeom_geos.c:1908,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1908,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1909,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1911,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1912,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1912,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1914,2'
          Dst:             geos_destroy
    - functionName:    get_result_srid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - lwerror
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:618,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:630,5'
          Dst:             lwerror
    - functionName:    lwgeom_geos_error
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vsnprintf
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:63,39'
          Dst:             vsnprintf
    - functionName:    LWGEOM2GEOS
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         96
      ICount:          635
      EdgeCount:       124
      CyclomaticComplexity: 30
      functionsReached:
        - GEOSGeom_createCollection
        - GEOSGeom_createEmptyLineString
        - GEOSGeom_createEmptyPoint
        - GEOSGeom_createEmptyPolygon
        - GEOSGeom_createLineString
        - GEOSGeom_createPoint
        - GEOSGeom_createPointFromXY
        - GEOSGeom_createPolygon
        - GEOSGeom_destroy
        - GEOSSetSRID
        - LWGEOM2GEOS
        - getPoint2d_cp
        - getPoint_internal
        - lwalloc
        - lwerror
        - lwfree
        - lwgeom_free
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwgeom_stroke
        - lwgeom_type_arc
        - lwtype_name
        - ptarray_addPoint
        - ptarray_to_GEOSCoordSeq
        - ptarray_to_GEOSLinearRing
      functionUses:    37
      BranchProfiles:
        - Branch String:   'lwgeom_geos.c:410,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos.c:394,7'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:400,6'
          Dst:             lwgeom_type_arc
        - Src:             'lwgeom_geos.c:402,28'
          Dst:             lwgeom_stroke
        - Src:             'lwgeom_geos.c:403,21'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:404,3'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos.c:408,13'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:415,9'
          Dst:             GEOSGeom_createEmptyPoint
        - Src:             'lwgeom_geos.c:419,9'
          Dst:             lwgeom_has_z
        - Src:             'lwgeom_geos.c:421,11'
          Dst:             ptarray_to_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:422,10'
          Dst:             GEOSGeom_createPoint
        - Src:             'lwgeom_geos.c:426,25'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom_geos.c:427,10'
          Dst:             GEOSGeom_createPointFromXY
        - Src:             'lwgeom_geos.c:437,9'
          Dst:             GEOSGeom_createEmptyLineString
        - Src:             'lwgeom_geos.c:446,16'
          Dst:             getPoint_internal
        - Src:             'lwgeom_geos.c:445,20'
          Dst:             ptarray_addPoint
        - Src:             'lwgeom_geos.c:450,10'
          Dst:             ptarray_to_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:451,9'
          Dst:             GEOSGeom_createLineString
        - Src:             'lwgeom_geos.c:461,9'
          Dst:             GEOSGeom_createEmptyPolygon
        - Src:             'lwgeom_geos.c:464,13'
          Dst:             ptarray_to_GEOSLinearRing
        - Src:             'lwgeom_geos.c:467,29'
          Dst:             lwalloc
        - Src:             'lwgeom_geos.c:471,21'
          Dst:             ptarray_to_GEOSLinearRing
        - Src:             'lwgeom_geos.c:476,8'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:477,7'
          Dst:             lwfree
        - Src:             'lwgeom_geos.c:478,7'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:482,9'
          Dst:             GEOSGeom_createPolygon
        - Src:             'lwgeom_geos.c:483,16'
          Dst:             lwfree
        - Src:             'lwgeom_geos.c:492,9'
          Dst:             GEOSGeom_createEmptyPolygon
        - Src:             'lwgeom_geos.c:496,13'
          Dst:             ptarray_to_GEOSLinearRing
        - Src:             'lwgeom_geos.c:498,9'
          Dst:             GEOSGeom_createPolygon
        - Src:             'lwgeom_geos.c:522,28'
          Dst:             lwalloc
        - Src:             'lwgeom_geos.c:531,9'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:536,7'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:537,6'
          Dst:             lwfree
        - Src:             'lwgeom_geos.c:542,8'
          Dst:             GEOSGeom_createCollection
        - Src:             'lwgeom_geos.c:543,20'
          Dst:             lwfree
        - Src:             'lwgeom_geos.c:550,60'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos.c:550,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:555,2'
          Dst:             GEOSSetSRID
    - functionName:    GEOSConstrainedDelaunayTriangulation
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geos_destroy
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - GEOSGeom_destroy
      functionUses:    67
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:128,4'
          Dst:             GEOSGeom_destroy
    - functionName:    GEOS2LWGEOM
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          290
      EdgeCount:       48
      CyclomaticComplexity: 10
      functionsReached:
        - GEOS2LWGEOM
        - GEOSGeomTypeId
        - GEOSGeom_getCoordSeq
        - GEOSGetExteriorRing
        - GEOSGetGeometryN
        - GEOSGetInteriorRingN
        - GEOSGetNumGeometries
        - GEOSGetNumInteriorRings
        - GEOSGetSRID
        - GEOSHasZ
        - GEOSisEmpty
        - lwalloc
        - lwcollection_construct
        - lwerror
        - lwline_construct
        - lwline_construct_empty
        - lwpoint_construct
        - lwpoint_construct_empty
        - lwpoly_construct
        - lwpoly_construct_empty
        - ptarray_from_GEOSCoordSeq
      functionUses:    28
      BranchProfiles:
        - Branch String:   'lwgeom_geos.c:189,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos.c:177,13'
          Dst:             GEOSGeomTypeId
        - Src:             'lwgeom_geos.c:178,13'
          Dst:             GEOSGetSRID
        - Src:             'lwgeom_geos.c:183,17'
          Dst:             GEOSHasZ
        - Src:             'lwgeom_geos.c:199,8'
          Dst:             GEOSGeom_getCoordSeq
        - Src:             'lwgeom_geos.c:200,7'
          Dst:             GEOSisEmpty
        - Src:             'lwgeom_geos.c:200,42'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom_geos.c:201,8'
          Dst:             ptarray_from_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:202,19'
          Dst:             lwpoint_construct
        - Src:             'lwgeom_geos.c:207,7'
          Dst:             GEOSisEmpty
        - Src:             'lwgeom_geos.c:207,42'
          Dst:             lwline_construct_empty
        - Src:             'lwgeom_geos.c:209,8'
          Dst:             GEOSGeom_getCoordSeq
        - Src:             'lwgeom_geos.c:210,8'
          Dst:             ptarray_from_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:211,19'
          Dst:             lwline_construct
        - Src:             'lwgeom_geos.c:215,7'
          Dst:             GEOSisEmpty
        - Src:             'lwgeom_geos.c:215,42'
          Dst:             lwpoly_construct_empty
        - Src:             'lwgeom_geos.c:216,12'
          Dst:             GEOSGetNumInteriorRings
        - Src:             'lwgeom_geos.c:217,10'
          Dst:             lwalloc
        - Src:             'lwgeom_geos.c:218,7'
          Dst:             GEOSGetExteriorRing
        - Src:             'lwgeom_geos.c:219,8'
          Dst:             GEOSGeom_getCoordSeq
        - Src:             'lwgeom_geos.c:220,13'
          Dst:             ptarray_from_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:223,8'
          Dst:             GEOSGetInteriorRingN
        - Src:             'lwgeom_geos.c:224,9'
          Dst:             GEOSGeom_getCoordSeq
        - Src:             'lwgeom_geos.c:225,18'
          Dst:             ptarray_from_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:227,19'
          Dst:             lwpoly_construct
        - Src:             'lwgeom_geos.c:235,12'
          Dst:             GEOSGetNumGeometries
        - Src:             'lwgeom_geos.c:239,12'
          Dst:             lwalloc
        - Src:             'lwgeom_geos.c:242,9'
          Dst:             GEOSGetGeometryN
        - Src:             'lwgeom_geos.c:243,16'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:246,19'
          Dst:             lwcollection_construct
        - Src:             'lwgeom_geos.c:249,3'
          Dst:             lwerror
    - functionName:    ptarray_from_GEOSCoordSeq
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - GEOSCoordSeq_copyToBuffer
        - GEOSCoordSeq_getDimensions
        - GEOSCoordSeq_getSize
        - lwerror
        - ptarray_construct
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:152,7'
          Dst:             GEOSCoordSeq_getSize
        - Src:             'lwgeom_geos.c:152,40'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:158,8'
          Dst:             GEOSCoordSeq_getDimensions
        - Src:             'lwgeom_geos.c:158,47'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:168,7'
          Dst:             ptarray_construct
        - Src:             'lwgeom_geos.c:169,2'
          Dst:             GEOSCoordSeq_copyToBuffer
    - functionName:    GEOSCoordSeq_copyToBuffer
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    21
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    ptarray_to_GEOSCoordSeq
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         56
      ICount:          329
      EdgeCount:       72
      CyclomaticComplexity: 18
      functionsReached:
        - GEOSCoordSeq_copyFromBuffer
        - GEOSCoordSeq_create
        - GEOSCoordSeq_setXY
        - GEOSCoordSeq_setXYZ
        - GEOSCoordSeq_setZ
        - getPoint2d_cp
        - getPoint3d_cp
        - lwerror
        - ptarray_is_closed_2d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:272,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:278,9'
          Dst:             ptarray_is_closed_2d
        - Src:             'lwgeom_geos.c:283,8'
          Dst:             GEOSCoordSeq_copyFromBuffer
        - Src:             'lwgeom_geos.c:286,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:290,13'
          Dst:             GEOSCoordSeq_create
        - Src:             'lwgeom_geos.c:292,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:299,10'
          Dst:             getPoint3d_cp
        - Src:             'lwgeom_geos.c:305,10'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom_geos.c:310,4'
          Dst:             GEOSCoordSeq_setXYZ
        - Src:             'lwgeom_geos.c:312,4'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:320,10'
          Dst:             getPoint3d_cp
        - Src:             'lwgeom_geos.c:324,10'
          Dst:             getPoint2d_cp
        - Src:             'lwgeom_geos.c:328,4'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:330,19'
          Dst:             GEOSCoordSeq_setZ
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    GEOSGeom_createEmptyLineString
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    ptarray_to_GEOSLinearRing
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GEOSGeom_createLinearRing
        - ptarray_to_GEOSCoordSeq
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:343,7'
          Dst:             ptarray_to_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:344,6'
          Dst:             GEOSGeom_createLinearRing
    - functionName:    GEOSCoordSeq_copyFromBuffer
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint3d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:111,26'
          Dst:             getPoint_internal
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_simplify_polygonal
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1867
      functionLinenumberEnd: 1889
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          117
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - GEOS2LWGEOM
        - GEOSPolygonHullSimplify
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1869,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1873,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1873,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1873,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1875,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1875,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1877,7'
          Dst:             GEOSPolygonHullSimplify
        - Src:             'lwgeom_geos.c:1880,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1880,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1882,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1884,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1885,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1885,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1887,2'
          Dst:             geos_destroy
    - functionName:    GEOSPolygonHullSimplify
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_concavehull
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1833
      functionLinenumberEnd: 1863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          150
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - GEOS2LWGEOM
        - GEOSConcaveHull
        - GEOSConcaveHullOfPolygons
        - GEOSGeomTypeId
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1835,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1840,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1840,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1840,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1842,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1842,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1844,17'
          Dst:             GEOSGeomTypeId
        - Src:             'lwgeom_geos.c:1847,8'
          Dst:             GEOSConcaveHullOfPolygons
        - Src:             'lwgeom_geos.c:1850,8'
          Dst:             GEOSConcaveHull
        - Src:             'lwgeom_geos.c:1854,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1854,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1856,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1858,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1859,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1859,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1861,2'
          Dst:             geos_destroy
    - functionName:    GEOSConcaveHullOfPolygons
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GEOSConcaveHull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_get_geos_coordseq_2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1740
      functionLinenumberEnd: 1772
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - GEOSCoordSeq_create
        - GEOSCoordSeq_destroy
        - GEOSCoordSeq_setXY
        - lwerror
        - lwpointiterator_create
        - lwpointiterator_destroy
        - lwpointiterator_next
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1747,11'
          Dst:             GEOSCoordSeq_create
        - Src:             'lwgeom_geos.c:1750,7'
          Dst:             lwpointiterator_create
        - Src:             'lwgeom_geos.c:1751,9'
          Dst:             lwpointiterator_next
        - Src:             'lwgeom_geos.c:1755,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1756,4'
          Dst:             GEOSCoordSeq_destroy
        - Src:             'lwgeom_geos.c:1757,4'
          Dst:             lwpointiterator_destroy
        - Src:             'lwgeom_geos.c:1761,8'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:1763,4'
          Dst:             GEOSCoordSeq_destroy
        - Src:             'lwgeom_geos.c:1764,4'
          Dst:             lwpointiterator_destroy
        - Src:             'lwgeom_geos.c:1769,2'
          Dst:             lwpointiterator_destroy
    - functionName:    lwgeom_voronoi_diagram
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1776
      functionLinenumberEnd: 1827
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          138
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - GBOX2GEOS
        - GEOS2LWGEOM
        - GEOSCoordSeq_destroy
        - GEOSGeom_createLineString
        - GEOSGeom_destroy
        - GEOSVoronoiDiagram
        - initGEOS
        - lwcollection_as_lwgeom
        - lwcollection_construct_empty
        - lwerror
        - lwgeom_count_vertices
        - lwgeom_geos_error
        - lwgeom_get_geos_coordseq_2d
        - lwgeom_get_srid
        - lwgeom_set_srid
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1777,24'
          Dst:             lwgeom_count_vertices
        - Src:             'lwgeom_geos.c:1780,17'
          Dst:             lwgeom_get_srid
        - Src:             'lwgeom_geos.c:1788,70'
          Dst:             lwgeom_get_srid
        - Src:             'lwgeom_geos.c:1788,25'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom_geos.c:1789,10'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwgeom_geos.c:1792,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1792,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1792,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1798,11'
          Dst:             lwgeom_get_geos_coordseq_2d
        - Src:             'lwgeom_geos.c:1801,14'
          Dst:             GEOSGeom_createLineString
        - Src:             'lwgeom_geos.c:1804,3'
          Dst:             GEOSCoordSeq_destroy
        - Src:             'lwgeom_geos.c:1808,22'
          Dst:             GBOX2GEOS
        - Src:             'lwgeom_geos.c:1810,16'
          Dst:             GEOSVoronoiDiagram
        - Src:             'lwgeom_geos.c:1812,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1813,11'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1817,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1821,18'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1822,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1824,2'
          Dst:             lwgeom_set_srid
    - functionName:    GBOX2GEOS
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          100
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GEOSCoordSeq_create
        - GEOSCoordSeq_destroy
        - GEOSCoordSeq_setXY
        - GEOSGeom_createLinearRing
        - GEOSGeom_createPolygon
        - GEOSGeom_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:353,27'
          Dst:             GEOSCoordSeq_create
        - Src:             'lwgeom_geos.c:356,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:357,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:358,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:359,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:360,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:362,9'
          Dst:             GEOSGeom_createLinearRing
        - Src:             'lwgeom_geos.c:365,3'
          Dst:             GEOSCoordSeq_destroy
        - Src:             'lwgeom_geos.c:369,13'
          Dst:             GEOSGeom_createPolygon
        - Src:             'lwgeom_geos.c:372,3'
          Dst:             GEOSGeom_destroy
    - functionName:    lwgeom_delaunay_triangulation
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1695
      functionLinenumberEnd: 1735
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          179
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - GEOS2LWGEOM
        - GEOSDelaunayTriangulation
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwgeom_set_srid
        - lwnotice
        - lwtin_from_geos
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1697,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1703,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1709,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1709,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1709,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1711,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1711,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1714,7'
          Dst:             GEOSDelaunayTriangulation
        - Src:             'lwgeom_geos.c:1716,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1716,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1717,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1721,21'
          Dst:             lwtin_from_geos
        - Src:             'lwgeom_geos.c:1724,4'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1725,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1728,3'
          Dst:             lwgeom_set_srid
        - Src:             'lwgeom_geos.c:1730,22'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1731,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1731,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1733,2'
          Dst:             geos_destroy
    - functionName:    lwtin_from_geos
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1689
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          188
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - GEOSGeomTypeId
        - GEOSGeom_getCoordSeq
        - GEOSGetExteriorRing
        - GEOSGetGeometryN
        - GEOSGetNumGeometries
        - GEOSGetSRID
        - GEOSHasZ
        - lwalloc
        - lwcollection_construct
        - lwerror
        - lwtriangle_construct
        - ptarray_from_GEOSCoordSeq
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom_geos.c:1640,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos.c:1628,13'
          Dst:             GEOSGeomTypeId
        - Src:             'lwgeom_geos.c:1629,13'
          Dst:             GEOSGetSRID
        - Src:             'lwgeom_geos.c:1634,17'
          Dst:             GEOSHasZ
        - Src:             'lwgeom_geos.c:1647,12'
          Dst:             GEOSGetNumGeometries
        - Src:             'lwgeom_geos.c:1651,12'
          Dst:             lwalloc
        - Src:             'lwgeom_geos.c:1654,5'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1663,12'
          Dst:             GEOSGetGeometryN
        - Src:             'lwgeom_geos.c:1664,12'
          Dst:             GEOSGetExteriorRing
        - Src:             'lwgeom_geos.c:1665,10'
          Dst:             GEOSGeom_getCoordSeq
        - Src:             'lwgeom_geos.c:1666,10'
          Dst:             ptarray_from_GEOSCoordSeq
        - Src:             'lwgeom_geos.c:1668,16'
          Dst:             lwtriangle_construct
        - Src:             'lwgeom_geos.c:1671,18'
          Dst:             lwcollection_construct
        - Src:             'lwgeom_geos.c:1679,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1683,3'
          Dst:             lwerror
    - functionName:    lwgeom_to_points
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - lwerror
        - lwgeom_get_type
        - lwmpoly_to_points
        - lwpoly_to_points
        - lwtype_name
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwgeom_geos.c:1613,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos.c:1613,10'
          Dst:             lwgeom_get_type
        - Src:             'lwgeom_geos.c:1616,10'
          Dst:             lwmpoly_to_points
        - Src:             'lwgeom_geos.c:1618,10'
          Dst:             lwpoly_to_points
        - Src:             'lwgeom_geos.c:1620,71'
          Dst:             lwgeom_get_type
        - Src:             'lwgeom_geos.c:1620,59'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos.c:1620,3'
          Dst:             lwerror
    - functionName:    lwgeom_get_type
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwmpoly_to_points
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1571
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          170
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - lwerror
        - lwfree
        - lwgeom_area
        - lwgeom_get_type
        - lwgeom_is_empty
        - lwgeom_release
        - lwmpoint_add_lwpoint
        - lwpoly_area
        - lwpoly_to_points
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1577,6'
          Dst:             lwgeom_get_type
        - Src:             'lwgeom_geos.c:1579,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1582,22'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1584,9'
          Dst:             lwgeom_area
        - Src:             'lwgeom_geos.c:1588,21'
          Dst:             lwpoly_area
        - Src:             'lwgeom_geos.c:1592,24'
          Dst:             lwpoly_to_points
        - Src:             'lwgeom_geos.c:1599,12'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom_geos.c:1602,5'
          Dst:             lwfree
        - Src:             'lwgeom_geos.c:1603,5'
          Dst:             lwgeom_release
    - functionName:    lwpoly_to_points
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1565
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          615
      EdgeCount:       111
      CyclomaticComplexity: 30
      functionsReached:
        - GEOSGeom_destroy
        - GEOSPrepare
        - GEOSPreparedGeom_destroy
        - GEOSPreparedIntersects
        - GEOSPreparedIntersectsXY
        - LWGEOM2GEOS
        - initGEOS
        - lwalloc
        - lwerror
        - lwfree
        - lwgeom_calculate_gbox
        - lwgeom_geos_error
        - lwgeom_get_srid
        - lwgeom_get_type
        - lwgeom_is_empty
        - lwmpoint_add_lwpoint
        - lwmpoint_construct_empty
        - lwnotice
        - lwpoint_make2d
        - lwpoly_area
        - lwpoly_to_points_make_cell
        - lwrandom_set_seed
        - lwrandom_uniform
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1382,17'
          Dst:             lwgeom_get_srid
        - Src:             'lwgeom_geos.c:1385,6'
          Dst:             lwgeom_get_type
        - Src:             'lwgeom_geos.c:1387,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1391,22'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1394,3'
          Dst:             lwgeom_calculate_gbox
        - Src:             'lwgeom_geos.c:1398,9'
          Dst:             lwpoly_area
        - Src:             'lwgeom_geos.c:1405,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1439,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1439,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1439,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1440,21'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1443,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1446,10'
          Dst:             GEOSPrepare
        - Src:             'lwgeom_geos.c:1454,10'
          Dst:             lwalloc
        - Src:             'lwgeom_geos.c:1463,26'
          Dst:             lwpoly_to_points_make_cell
        - Src:             'lwgeom_geos.c:1464,17'
          Dst:             GEOSPreparedIntersects
        - Src:             'lwgeom_geos.c:1465,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1468,5'
          Dst:             GEOSPreparedGeom_destroy
        - Src:             'lwgeom_geos.c:1469,5'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1470,5'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1488,2'
          Dst:             lwrandom_set_seed
        - Src:             'lwgeom_geos.c:1497,19'
          Dst:             lwrandom_uniform
        - Src:             'lwgeom_geos.c:1505,8'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom_geos.c:1516,9'
          Dst:             lwrandom_uniform
        - Src:             'lwgeom_geos.c:1517,9'
          Dst:             lwrandom_uniform
        - Src:             'lwgeom_geos.c:1521,15'
          Dst:             GEOSPreparedIntersectsXY
        - Src:             'lwgeom_geos.c:1534,5'
          Dst:             GEOSPreparedGeom_destroy
        - Src:             'lwgeom_geos.c:1535,5'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1536,5'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1541,37'
          Dst:             lwpoint_make2d
        - Src:             'lwgeom_geos.c:1541,11'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom_geos.c:1553,5'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1553,5'
          Dst:             GEOSPreparedGeom_destroy
        - Src:             'lwgeom_geos.c:1553,5'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1560,2'
          Dst:             GEOSPreparedGeom_destroy
        - Src:             'lwgeom_geos.c:1561,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1562,2'
          Dst:             lwfree
    - functionName:    lwpoly_to_points_make_cell
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1348
      functionLinenumberEnd: 1355
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GEOSCoordSeq_create
        - GEOSCoordSeq_setXY
        - GEOSGeom_createLinearRing
        - GEOSGeom_createPolygon
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1349,26'
          Dst:             GEOSCoordSeq_create
        - Src:             'lwgeom_geos.c:1350,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:1351,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:1352,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:1353,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:1354,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:1355,32'
          Dst:             GEOSGeom_createLinearRing
        - Src:             'lwgeom_geos.c:1355,9'
          Dst:             GEOSGeom_createPolygon
    - functionName:    GEOSPreparedIntersectsXY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      char
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_offsetcurve
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1244
      functionLinenumberEnd: 1288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - int
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          167
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - get_result_srid
        - lwcollection_add_lwgeom
        - lwcollection_as_lwgeom
        - lwcollection_concat_in_place
        - lwcollection_construct_empty
        - lwcollection_free
        - lwcollection_release
        - lwgeom_as_lwcollection
        - lwgeom_free
        - lwgeom_is_collection
        - lwgeom_is_empty
        - lwgeom_offsetcurve
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1245,23'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwgeom_geos.c:1246,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1253,11'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom_geos.c:1257,9'
          Dst:             lwgeom_offsetcurve
        - Src:             'lwgeom_geos.c:1261,4'
          Dst:             lwcollection_free
        - Src:             'lwgeom_geos.c:1265,8'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1267,8'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom_geos.c:1268,51'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom_geos.c:1268,14'
          Dst:             lwcollection_concat_in_place
        - Src:             'lwgeom_geos.c:1270,14'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwgeom_geos.c:1274,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos.c:1283,3'
          Dst:             lwcollection_release
        - Src:             'lwgeom_geos.c:1287,10'
          Dst:             lwcollection_as_lwgeom
    - functionName:    lwgeom_offsetcurve
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1344
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - int
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          162
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - get_result_srid
        - lwcollection_offsetcurve
        - lwerror
        - lwgeom_as_lwcollection
        - lwgeom_as_lwline
        - lwgeom_dimension
        - lwgeom_free
        - lwgeom_node
        - lwline_offsetcurve
        - lwtype_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom_geos.c:1306,3'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos.c:1293,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1298,6'
          Dst:             lwgeom_dimension
        - Src:             'lwgeom_geos.c:1300,58'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos.c:1300,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1309,32'
          Dst:             lwgeom_as_lwline
        - Src:             'lwgeom_geos.c:1309,13'
          Dst:             lwline_offsetcurve
        - Src:             'lwgeom_geos.c:1313,38'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom_geos.c:1313,13'
          Dst:             lwcollection_offsetcurve
        - Src:             'lwgeom_geos.c:1316,59'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos.c:1316,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1322,15'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos.c:1327,12'
          Dst:             lwgeom_node
        - Src:             'lwgeom_geos.c:1330,5'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1337,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos.c:1338,4'
          Dst:             lwerror
    - functionName:    lwline_offsetcurve
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - int
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          127
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - GEOS2LWGEOM
        - GEOSOffsetCurve
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwline_as_lwgeom
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1214,17'
          Dst:             lwline_as_lwgeom
        - Src:             'lwgeom_geos.c:1215,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1221,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1221,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1221,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1223,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1223,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1225,7'
          Dst:             GEOSOffsetCurve
        - Src:             'lwgeom_geos.c:1229,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1233,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1235,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1236,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1236,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1238,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_sharedpaths
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          171
      EdgeCount:       49
      CyclomaticComplexity: 8
      functionsReached:
        - GEOS2LWGEOM
        - GEOSSetSRID
        - GEOSSharedPaths
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1187,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1193,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1193,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1193,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1195,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1195,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1196,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1196,43'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1196,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1198,7'
          Dst:             GEOSSharedPaths
        - Src:             'lwgeom_geos.c:1200,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1200,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1201,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1203,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1204,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1204,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1206,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_snap
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          174
      EdgeCount:       49
      CyclomaticComplexity: 8
      functionsReached:
        - GEOS2LWGEOM
        - GEOSSetSRID
        - GEOSSnap
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1160,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1166,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1166,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1166,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1168,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1168,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1169,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1169,43'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1169,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1171,7'
          Dst:             GEOSSnap
        - Src:             'lwgeom_geos.c:1173,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1173,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1174,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1176,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1177,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1177,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1179,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_geos_noop
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          114
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - GEOS2LWGEOM
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1135,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1141,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1141,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1141,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1143,12'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1143,41'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1145,10'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1145,10'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1146,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1148,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1149,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1149,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1151,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_is_simple
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1129
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GEOSGeom_destroy
        - GEOSisSimple
        - LWGEOM2GEOS
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1113,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1115,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1115,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1115,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1117,12'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1119,11'
          Dst:             GEOSisSimple
        - Src:             'lwgeom_geos.c:1120,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos.c:1124,3'
          Dst:             lwerror
    - functionName:    lwgeom_buildarea
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          148
      EdgeCount:       43
      CyclomaticComplexity: 8
      functionsReached:
        - GEOS2LWGEOM
        - GEOSBuildArea
        - GEOSGetNumGeometries
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
        - lwpoly_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1071,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1078,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1078,45'
          Dst:             lwpoly_construct_empty
        - Src:             'lwgeom_geos.c:1080,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1080,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1080,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1082,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1082,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1084,7'
          Dst:             GEOSBuildArea
        - Src:             'lwgeom_geos.c:1086,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1086,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1087,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1090,6'
          Dst:             GEOSGetNumGeometries
        - Src:             'lwgeom_geos.c:1092,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1096,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1097,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1097,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1099,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_clip_by_rect
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1064
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          127
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - GEOS2LWGEOM
        - GEOSClipByRect
        - LWGEOM2GEOS
        - geos_destroy
        - initGEOS
        - lwdebug
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:1041,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1042,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:1046,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1046,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1046,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1048,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1049,3'
          Dst:             lwdebug
        - Src:             'lwgeom_geos.c:1051,13'
          Dst:             GEOSClipByRect
        - Src:             'lwgeom_geos.c:1052,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1052,3'
          Dst:             lwdebug
        - Src:             'lwgeom_geos.c:1054,2'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1055,11'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1056,2'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1059,3'
          Dst:             lwdebug
    - functionName:    lwgeom_union_prec
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 996
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          213
      EdgeCount:       59
      CyclomaticComplexity: 11
      functionsReached:
        - GEOS2LWGEOM
        - GEOSSetSRID
        - GEOSUnion
        - GEOSUnionPrec
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:998,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:1005,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1005,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:1008,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:1008,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:1010,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:1010,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:1010,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:1012,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1012,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1013,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:1013,43'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1013,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1016,8'
          Dst:             GEOSUnionPrec
        - Src:             'lwgeom_geos.c:1020,8'
          Dst:             GEOSUnion
        - Src:             'lwgeom_geos.c:1023,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1023,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1024,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:1026,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:1027,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:1027,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:1029,2'
          Dst:             geos_destroy
    - functionName:    GEOSUnionPrec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_union
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_union_prec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:991,9'
          Dst:             lwgeom_union_prec
    - functionName:    lwgeom_pointonsurface
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 986
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          140
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - GEOS2LWGEOM
        - GEOSPointOnSurface
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwgeom_has_m
        - lwgeom_is_empty
        - lwnotice
        - lwpoint_as_lwgeom
        - lwpoint_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:959,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:965,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:967,54'
          Dst:             lwgeom_has_m
        - Src:             'lwgeom_geos.c:967,18'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom_geos.c:968,10'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeom_geos.c:971,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:971,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:971,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:973,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:973,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:975,7'
          Dst:             GEOSPointOnSurface
        - Src:             'lwgeom_geos.c:977,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:977,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:978,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:980,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:981,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:981,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:983,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_reduceprecision
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          134
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - GEOS2LWGEOM
        - GEOSGeom_setPrecision
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:929,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:935,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:936,10'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:938,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:938,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:938,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:940,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:940,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:942,7'
          Dst:             GEOSGeom_setPrecision
        - Src:             'lwgeom_geos.c:944,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:944,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:945,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:947,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:948,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:948,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:950,2'
          Dst:             geos_destroy
    - functionName:    GEOSGeom_setPrecision
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_centroid
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         33
      ICount:          139
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - GEOS2LWGEOM
        - GEOSGetCentroid
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwgeom_has_m
        - lwgeom_is_empty
        - lwnotice
        - lwpoint_as_lwgeom
        - lwpoint_construct_empty
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:896,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:902,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:904,54'
          Dst:             lwgeom_has_m
        - Src:             'lwgeom_geos.c:904,18'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom_geos.c:905,10'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwgeom_geos.c:908,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:908,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:908,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:910,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:910,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:912,7'
          Dst:             GEOSGetCentroid
        - Src:             'lwgeom_geos.c:914,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:914,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:915,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:917,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:918,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:918,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:920,2'
          Dst:             geos_destroy
    - functionName:    lwgeom_symdifference_prec
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 890
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          213
      EdgeCount:       59
      CyclomaticComplexity: 11
      functionsReached:
        - GEOS2LWGEOM
        - GEOSSetSRID
        - GEOSSymDifference
        - GEOSSymDifferencePrec
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:857,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:864,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:864,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:867,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:867,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:869,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:869,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:869,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:871,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:871,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:872,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:872,43'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:872,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:875,8'
          Dst:             GEOSSymDifferencePrec
        - Src:             'lwgeom_geos.c:879,8'
          Dst:             GEOSSymDifference
        - Src:             'lwgeom_geos.c:882,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:882,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:883,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:885,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:886,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:886,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:888,2'
          Dst:             geos_destroy
    - functionName:    GEOSSymDifferencePrec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_symdifference
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_symdifference_prec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:850,9'
          Dst:             lwgeom_symdifference_prec
    - functionName:    lwgeom_difference_prec
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 810
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          213
      EdgeCount:       59
      CyclomaticComplexity: 11
      functionsReached:
        - GEOS2LWGEOM
        - GEOSDifference
        - GEOSDifferencePrec
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:812,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:819,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:819,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:822,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:822,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:824,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:824,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:824,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:826,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:826,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:827,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:827,43'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:827,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:830,8'
          Dst:             GEOSDifferencePrec
        - Src:             'lwgeom_geos.c:834,8'
          Dst:             GEOSDifference
        - Src:             'lwgeom_geos.c:837,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:837,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:838,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:840,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:841,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:841,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:843,2'
          Dst:             geos_destroy
    - functionName:    GEOSDifferencePrec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_difference
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_difference_prec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:805,9'
          Dst:             lwgeom_difference_prec
    - functionName:    lwgeom_unaryunion_prec
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          149
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - GEOS2LWGEOM
        - GEOSSetSRID
        - GEOSUnaryUnion
        - GEOSUnaryUnionPrec
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:769,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:777,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:777,36'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:779,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:779,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:779,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:781,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:781,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:784,8'
          Dst:             GEOSUnaryUnionPrec
        - Src:             'lwgeom_geos.c:788,8'
          Dst:             GEOSUnaryUnion
        - Src:             'lwgeom_geos.c:791,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:791,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:792,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:794,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:795,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:795,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:797,2'
          Dst:             geos_destroy
    - functionName:    GEOSUnaryUnionPrec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_unaryunion
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_unaryunion_prec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:762,9'
          Dst:             lwgeom_unaryunion_prec
    - functionName:    lwgeom_linemerge_directed
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          149
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - GEOS2LWGEOM
        - GEOSLineMerge
        - GEOSLineMergeDirected
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:719,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:727,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:727,36'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:729,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:729,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:729,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:731,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:731,42'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:740,8'
          Dst:             GEOSLineMergeDirected
        - Src:             'lwgeom_geos.c:745,8'
          Dst:             GEOSLineMerge
        - Src:             'lwgeom_geos.c:748,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:748,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:749,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:751,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:752,3'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:752,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:754,2'
          Dst:             geos_destroy
    - functionName:    GEOSLineMergeDirected
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_linemerge
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_linemerge_directed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:712,9'
          Dst:             lwgeom_linemerge_directed
    - functionName:    lwgeom_intersection_prec
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          213
      EdgeCount:       59
      CyclomaticComplexity: 11
      functionsReached:
        - GEOS2LWGEOM
        - GEOSIntersection
        - GEOSIntersectionPrec
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_clone_deep
        - lwgeom_geos_error
        - lwgeom_is_empty
        - lwnotice
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:673,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:682,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:682,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:685,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwgeom_geos.c:685,37'
          Dst:             lwgeom_clone_deep
        - Src:             'lwgeom_geos.c:687,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:687,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:687,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:689,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:689,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:690,13'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:690,43'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:690,43'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:693,8'
          Dst:             GEOSIntersectionPrec
        - Src:             'lwgeom_geos.c:697,8'
          Dst:             GEOSIntersection
        - Src:             'lwgeom_geos.c:700,11'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:700,11'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:701,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:703,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:703,41'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:703,41'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:705,2'
          Dst:             geos_destroy
    - functionName:    GEOSIntersectionPrec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_intersection
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_intersection_prec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:666,9'
          Dst:             lwgeom_intersection_prec
    - functionName:    lwgeom_normalize
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          111
      EdgeCount:       33
      CyclomaticComplexity: 6
      functionsReached:
        - GEOS2LWGEOM
        - GEOSGeom_destroy
        - GEOSNormalize
        - GEOSSetSRID
        - LWGEOM2GEOS
        - geos_destroy
        - get_result_srid
        - initGEOS
        - lwerror
        - lwgeom_geos_error
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:644,17'
          Dst:             get_result_srid
        - Src:             'lwgeom_geos.c:650,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos.c:650,2'
          Dst:             lwnotice
        - Src:             'lwgeom_geos.c:650,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos.c:652,12'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos.c:652,41'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:654,6'
          Dst:             GEOSNormalize
        - Src:             'lwgeom_geos.c:654,30'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:654,30'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:655,2'
          Dst:             GEOSSetSRID
        - Src:             'lwgeom_geos.c:657,17'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos.c:657,40'
          Dst:             geos_destroy
        - Src:             'lwgeom_geos.c:657,40'
          Dst:             lwerror
        - Src:             'lwgeom_geos.c:659,2'
          Dst:             GEOSGeom_destroy
    - functionName:    lwgeom_geos_version
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GEOSversion
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:600,20'
          Dst:             GEOSversion
    - functionName:    make_geos_segment
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - double
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - GEOSCoordSeq_create
        - GEOSCoordSeq_destroy
        - GEOSCoordSeq_setXY
        - GEOSGeom_createLineString
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:584,27'
          Dst:             GEOSCoordSeq_create
        - Src:             'lwgeom_geos.c:589,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:590,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:592,9'
          Dst:             GEOSGeom_createLineString
        - Src:             'lwgeom_geos.c:593,13'
          Dst:             GEOSCoordSeq_destroy
    - functionName:    make_geos_point
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - GEOSCoordSeq_create
        - GEOSCoordSeq_destroy
        - GEOSCoordSeq_setXY
        - GEOSGeom_createPoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:569,27'
          Dst:             GEOSCoordSeq_create
        - Src:             'lwgeom_geos.c:574,2'
          Dst:             GEOSCoordSeq_setXY
        - Src:             'lwgeom_geos.c:576,9'
          Dst:             GEOSGeom_createPoint
        - Src:             'lwgeom_geos.c:577,13'
          Dst:             GEOSCoordSeq_destroy
    - functionName:    lwgeom_geos_error_minversion
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwerror
        - lwgeom_geos_compiled_version
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:75,26'
          Dst:             lwgeom_geos_compiled_version
        - Src:             'lwgeom_geos.c:72,2'
          Dst:             lwerror
    - functionName:    lwgeom_geos_compiled_version
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos.c:46,2'
          Dst:             sprintf
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_collect_endpoints
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_node.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - lwerror
        - lwgeom_collect_endpoints
        - lwgeom_ngeoms
        - lwgeom_subgeom
        - lwline_get_lwpoint
        - lwmpoint_add_lwpoint
        - lwtype_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwgeom_geos_node.c:59,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos_node.c:63,16'
          Dst:             lwgeom_ngeoms
        - Src:             'lwgeom_geos_node.c:67,6'
          Dst:             lwgeom_subgeom
        - Src:             'lwgeom_geos_node.c:66,5'
          Dst:             lwgeom_collect_endpoints
        - Src:             'lwgeom_geos_node.c:74,5'
          Dst:             lwline_get_lwpoint
        - Src:             'lwgeom_geos_node.c:73,10'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom_geos_node.c:76,5'
          Dst:             lwline_get_lwpoint
        - Src:             'lwgeom_geos_node.c:75,10'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwgeom_geos_node.c:80,5'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos_node.c:79,4'
          Dst:             lwerror
    - functionName:    lwgeom_ngeoms
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_node.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_as_lwcollection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_node.c:39,26'
          Dst:             lwgeom_as_lwcollection
    - functionName:    lwgeom_subgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_node.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwcollection_getsubgeom
        - lwgeom_as_lwcollection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_node.c:47,26'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom_geos_node.c:48,18'
          Dst:             lwcollection_getsubgeom
    - functionName:    lwgeom_extract_endpoints
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_node.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_collect_endpoints
        - lwmpoint_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_node.c:88,18'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwgeom_geos_node.c:91,2'
          Dst:             lwgeom_collect_endpoints
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_extract_unique_endpoints
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_node.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GEOS2LWGEOM
        - GEOSGeom_destroy
        - GEOSUnaryUnion
        - LWGEOM2GEOS
        - lwerror
        - lwgeom_extract_endpoints
        - lwmpoint_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_node.c:103,20'
          Dst:             lwgeom_extract_endpoints
        - Src:             'lwgeom_geos_node.c:104,25'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos_node.c:105,2'
          Dst:             lwmpoint_free
        - Src:             'lwgeom_geos_node.c:107,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:113,9'
          Dst:             GEOSUnaryUnion
        - Src:             'lwgeom_geos_node.c:115,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:116,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:119,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:121,8'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos_node.c:122,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:124,3'
          Dst:             lwerror
    - functionName:    lwgeom_node
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_node.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          406
      EdgeCount:       61
      CyclomaticComplexity: 18
      functionsReached:
        - GEOS2LWGEOM
        - GEOSGeom_destroy
        - GEOSGetGeometryN
        - GEOSGetNumGeometries
        - GEOSLineMerge
        - GEOSNode
        - LWGEOM2GEOS
        - initGEOS
        - lwcollection_clone_deep
        - lwcollection_construct_empty
        - lwcollection_free
        - lwcollection_reserve
        - lwerror
        - lwgeom_dimension
        - lwgeom_extract_unique_endpoints
        - lwgeom_free
        - lwgeom_geos_error
        - lwgeom_is_collection
        - lwgeom_ngeoms
        - lwgeom_set_srid
        - lwgeom_subgeom
        - lwline_split_by_point_to
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_node.c:141,7'
          Dst:             lwgeom_dimension
        - Src:             'lwgeom_geos_node.c:142,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:146,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos_node.c:146,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos_node.c:146,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos_node.c:147,7'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos_node.c:149,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:153,7'
          Dst:             lwgeom_extract_unique_endpoints
        - Src:             'lwgeom_geos_node.c:155,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:156,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:160,7'
          Dst:             GEOSNode
        - Src:             'lwgeom_geos_node.c:161,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:163,3'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:164,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:169,7'
          Dst:             GEOSGetNumGeometries
        - Src:             'lwgeom_geos_node.c:172,8'
          Dst:             GEOSLineMerge
        - Src:             'lwgeom_geos_node.c:173,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:175,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:176,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:182,11'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos_node.c:183,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:185,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:186,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:192,28'
          Dst:             GEOSGetGeometryN
        - Src:             'lwgeom_geos_node.c:193,11'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos_node.c:194,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:196,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:197,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:204,11'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos_node.c:205,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_node.c:207,4'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:208,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_node.c:211,3'
          Dst:             lwgeom_set_srid
        - Src:             'lwgeom_geos_node.c:225,8'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom_geos_node.c:229,7'
          Dst:             lwgeom_ngeoms
        - Src:             'lwgeom_geos_node.c:232,32'
          Dst:             lwgeom_subgeom
        - Src:             'lwgeom_geos_node.c:234,8'
          Dst:             lwgeom_ngeoms
        - Src:             'lwgeom_geos_node.c:237,31'
          Dst:             lwgeom_subgeom
        - Src:             'lwgeom_geos_node.c:239,12'
          Dst:             lwline_split_by_point_to
        - Src:             'lwgeom_geos_node.c:251,9'
          Dst:             lwgeom_is_collection
        - Src:             'lwgeom_geos_node.c:253,5'
          Dst:             lwcollection_reserve
        - Src:             'lwgeom_geos_node.c:258,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:263,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:265,22'
          Dst:             lwcollection_clone_deep
        - Src:             'lwgeom_geos_node.c:267,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:268,5'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:280,2'
          Dst:             lwgeom_free
        - Src:             'lwgeom_geos_node.c:281,2'
          Dst:             lwcollection_free
        - Src:             'lwgeom_geos_node.c:283,2'
          Dst:             lwgeom_set_srid
    - functionName:    lwpoly_split_by_line
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          252
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - GEOS2LWGEOM
        - GEOSBoundary
        - GEOSContains
        - GEOSGeom_destroy
        - GEOSGetGeometryN
        - GEOSGetNumGeometries
        - GEOSPointOnSurface
        - GEOSPolygonize
        - GEOSUnion
        - LWGEOM2GEOS
        - initGEOS
        - lwcollection_construct_empty
        - lwerror
        - lwgeom_geos_error
        - lwrealloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_split.c:374,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos_split.c:374,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos_split.c:374,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos_split.c:376,7'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos_split.c:379,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:382,14'
          Dst:             GEOSBoundary
        - Src:             'lwgeom_geos_split.c:385,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:386,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:390,7'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos_split.c:393,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:394,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:395,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:399,14'
          Dst:             GEOSUnion
        - Src:             'lwgeom_geos_split.c:402,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:403,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:404,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:405,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:409,13'
          Dst:             GEOSPolygonize
        - Src:             'lwgeom_geos_split.c:412,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:413,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:414,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:415,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:416,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:437,6'
          Dst:             GEOSGetNumGeometries
        - Src:             'lwgeom_geos_split.c:438,8'
          Dst:             lwcollection_construct_empty
        - Src:             'lwgeom_geos_split.c:441,15'
          Dst:             lwrealloc
        - Src:             'lwgeom_geos_split.c:446,27'
          Dst:             GEOSGetGeometryN
        - Src:             'lwgeom_geos_split.c:449,9'
          Dst:             GEOSPointOnSurface
        - Src:             'lwgeom_geos_split.c:452,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:453,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:454,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:455,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:456,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:457,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:461,14'
          Dst:             GEOSContains
        - Src:             'lwgeom_geos_split.c:464,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:465,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:466,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:467,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:468,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:469,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:470,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:474,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:484,31'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos_split.c:487,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:488,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:489,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:490,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:491,2'
          Dst:             GEOSGeom_destroy
    - functionName:    lwline_split_by_line
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          207
      EdgeCount:       37
      CyclomaticComplexity: 12
      functionsReached:
        - GEOS2LWGEOM
        - GEOSBoundary
        - GEOSDifference
        - GEOSGeom_destroy
        - GEOSRelatePattern
        - LWGEOM2GEOS
        - initGEOS
        - lwalloc
        - lwcollection_construct
        - lwerror
        - lwgeom_as_lwcollection
        - lwgeom_geos_error
        - lwgeom_set_srid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_split.c:67,2'
          Dst:             initGEOS
        - Src:             'lwgeom_geos_split.c:67,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos_split.c:67,2'
          Dst:             lwgeom_geos_error
        - Src:             'lwgeom_geos_split.c:69,7'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos_split.c:72,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:75,7'
          Dst:             LWGEOM2GEOS
        - Src:             'lwgeom_geos_split.c:78,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:79,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:86,11'
          Dst:             GEOSBoundary
        - Src:             'lwgeom_geos_split.c:87,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:90,4'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:91,4'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:98,8'
          Dst:             GEOSRelatePattern
        - Src:             'lwgeom_geos_split.c:101,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:102,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:103,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:108,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:109,3'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:110,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:115,10'
          Dst:             GEOSDifference
        - Src:             'lwgeom_geos_split.c:116,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:117,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:120,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:124,9'
          Dst:             GEOS2LWGEOM
        - Src:             'lwgeom_geos_split.c:125,2'
          Dst:             GEOSGeom_destroy
        - Src:             'lwgeom_geos_split.c:128,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:132,8'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom_geos_split.c:135,16'
          Dst:             lwalloc
        - Src:             'lwgeom_geos_split.c:137,9'
          Dst:             lwcollection_construct
        - Src:             'lwgeom_geos_split.c:143,3'
          Dst:             lwgeom_set_srid
    - functionName:    lwline_split_by_mpoint
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          142
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - lwline_clone_deep
        - lwline_free
        - lwline_split_by_point_to
        - lwmline_add_lwline
        - lwmline_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_split.c:177,9'
          Dst:             lwmline_construct_empty
        - Src:             'lwgeom_geos_split.c:180,27'
          Dst:             lwline_clone_deep
        - Src:             'lwgeom_geos_split.c:180,3'
          Dst:             lwmline_add_lwline
        - Src:             'lwgeom_geos_split.c:188,17'
          Dst:             lwline_split_by_point_to
        - Src:             'lwgeom_geos_split.c:196,9'
          Dst:             lwline_free
    - functionName:    lwline_split_by_point_to
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          345
      EdgeCount:       68
      CyclomaticComplexity: 19
      functionsReached:
        - closest_point_on_segment
        - distance2d_sqr_pt_seg
        - getPoint4d_p
        - lwline_construct
        - lwmline_add_lwline
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_split.c:233,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:237,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:241,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:242,21'
          Dst:             distance2d_sqr_pt_seg
        - Src:             'lwgeom_geos_split.c:273,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:274,2'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:275,2'
          Dst:             closest_point_on_segment
        - Src:             'lwgeom_geos_split.c:297,8'
          Dst:             ptarray_construct_empty
        - Src:             'lwgeom_geos_split.c:301,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:302,3'
          Dst:             ptarray_append_point
        - Src:             'lwgeom_geos_split.c:304,2'
          Dst:             ptarray_append_point
        - Src:             'lwgeom_geos_split.c:306,8'
          Dst:             ptarray_construct_empty
        - Src:             'lwgeom_geos_split.c:307,2'
          Dst:             ptarray_append_point
        - Src:             'lwgeom_geos_split.c:311,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_geos_split.c:312,3'
          Dst:             ptarray_append_point
        - Src:             'lwgeom_geos_split.c:317,3'
          Dst:             ptarray_free
        - Src:             'lwgeom_geos_split.c:318,3'
          Dst:             ptarray_free
        - Src:             'lwgeom_geos_split.c:323,24'
          Dst:             lwline_construct
        - Src:             'lwgeom_geos_split.c:323,2'
          Dst:             lwmline_add_lwline
        - Src:             'lwgeom_geos_split.c:324,24'
          Dst:             lwline_construct
        - Src:             'lwgeom_geos_split.c:324,2'
          Dst:             lwmline_add_lwline
    - functionName:    lwline_split_by_point
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwline_clone_deep
        - lwline_split_by_point_to
        - lwmline_add_lwline
        - lwmline_construct_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_split.c:157,8'
          Dst:             lwmline_construct_empty
        - Src:             'lwgeom_geos_split.c:160,7'
          Dst:             lwline_split_by_point_to
        - Src:             'lwgeom_geos_split.c:162,27'
          Dst:             lwline_clone_deep
        - Src:             'lwgeom_geos_split.c:162,3'
          Dst:             lwmline_add_lwline
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwcollection_split
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          176
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - lwalloc
        - lwcollection_construct
        - lwerror
        - lwfree
        - lwgeom_as_lwcollection
        - lwgeom_split
        - lwrealloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_geos_split.c:506,17'
          Dst:             lwalloc
        - Src:             'lwgeom_geos_split.c:509,3'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:516,19'
          Dst:             lwgeom_split
        - Src:             'lwgeom_geos_split.c:520,9'
          Dst:             lwgeom_as_lwcollection
        - Src:             'lwgeom_geos_split.c:529,19'
          Dst:             lwrealloc
        - Src:             'lwgeom_geos_split.c:533,5'
          Dst:             lwerror
        - Src:             'lwgeom_geos_split.c:543,3'
          Dst:             lwfree
        - Src:             'lwgeom_geos_split.c:544,3'
          Dst:             lwfree
        - Src:             'lwgeom_geos_split.c:548,8'
          Dst:             lwcollection_construct
    - functionName:    lwgeom_split
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - lwcollection_split
        - lwerror
        - lwline_split
        - lwpoly_split
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom_geos_split.c:574,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos_split.c:577,10'
          Dst:             lwline_split
        - Src:             'lwgeom_geos_split.c:580,10'
          Dst:             lwpoly_split
        - Src:             'lwgeom_geos_split.c:585,10'
          Dst:             lwcollection_split
        - Src:             'lwgeom_geos_split.c:589,11'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos_split.c:588,3'
          Dst:             lwerror
    - functionName:    lwline_split
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - lwerror
        - lwline_split_by_line
        - lwline_split_by_mpoint
        - lwline_split_by_point
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom_geos_split.c:331,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos_split.c:334,10'
          Dst:             lwline_split_by_point
        - Src:             'lwgeom_geos_split.c:336,10'
          Dst:             lwline_split_by_mpoint
        - Src:             'lwgeom_geos_split.c:342,10'
          Dst:             lwline_split_by_line
        - Src:             'lwgeom_geos_split.c:346,11'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos_split.c:345,3'
          Dst:             lwerror
    - functionName:    lwpoly_split
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_geos_split.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 568
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - lwerror
        - lwpoly_split_by_line
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom_geos_split.c:557,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_geos_split.c:561,10'
          Dst:             lwpoly_split_by_line
        - Src:             'lwgeom_geos_split.c:564,11'
          Dst:             lwtype_name
        - Src:             'lwgeom_geos_split.c:563,3'
          Dst:             lwerror
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwnurbscurve_to_linestring
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          216
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - getPoint4d_p
        - lwline_construct
        - lwline_construct_empty
        - lwnurbscurve_evaluate
        - lwpoint_free
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:606,10'
          Dst:             lwline_construct_empty
        - Src:             'lwgeom_nurbs.c:612,8'
          Dst:             ptarray_construct_empty
        - Src:             'lwgeom_nurbs.c:617,17'
          Dst:             lwnurbscurve_evaluate
        - Src:             'lwgeom_nurbs.c:621,4'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_nurbs.c:622,4'
          Dst:             ptarray_append_point
        - Src:             'lwgeom_nurbs.c:625,11'
          Dst:             lwpoint_free
        - Src:             'lwgeom_nurbs.c:628,9'
          Dst:             lwline_construct
    - functionName:    lwnurbscurve_evaluate
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          666
      EdgeCount:       87
      CyclomaticComplexity: 23
      functionsReached:
        - getPoint4d_p
        - lwalloc
        - lwfree
        - lwnurbscurve_find_span
        - lwnurbscurve_get_or_generate_knots
        - lwpoint_construct
        - lwpoint_construct_empty
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:490,10'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom_nurbs.c:492,10'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom_nurbs.c:508,10'
          Dst:             lwnurbscurve_get_or_generate_knots
        - Src:             'lwgeom_nurbs.c:510,3'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:511,10'
          Dst:             lwpoint_construct_empty
        - Src:             'lwgeom_nurbs.c:518,9'
          Dst:             lwnurbscurve_find_span
        - Src:             'lwgeom_nurbs.c:521,9'
          Dst:             lwalloc
        - Src:             'lwgeom_nurbs.c:522,12'
          Dst:             lwalloc
        - Src:             'lwgeom_nurbs.c:531,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_nurbs.c:573,2'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:575,2'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:576,2'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:578,49'
          Dst:             ptarray_construct_empty
        - Src:             'lwgeom_nurbs.c:578,12'
          Dst:             lwpoint_construct
        - Src:             'lwgeom_nurbs.c:579,2'
          Dst:             ptarray_append_point
    - functionName:    lwnurbscurve_get_or_generate_knots
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          97
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - lwalloc
        - lwnurbscurve_generate_uniform_knots
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:351,19'
          Dst:             lwalloc
        - Src:             'lwgeom_nurbs.c:358,9'
          Dst:             lwnurbscurve_generate_uniform_knots
    - functionName:    lwnurbscurve_find_span
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 457
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - double
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_generate_uniform_knots
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          177
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - lwalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:296,10'
          Dst:             lwalloc
    - functionName:    lwnurbscurve_get_control_points
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          24
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_as_lwnurbscurve
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_as_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          97
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lwnurbscurve_construct
        - lwnurbscurve_construct_empty
        - ptarray_force_dims
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:254,10'
          Dst:             lwnurbscurve_construct_empty
        - Src:             'lwgeom_nurbs.c:256,11'
          Dst:             ptarray_force_dims
        - Src:             'lwgeom_nurbs.c:258,9'
          Dst:             lwnurbscurve_construct
    - functionName:    lwnurbscurve_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          60
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_construct_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:175,25'
          Dst:             lwalloc
        - Src:             'lwgeom_nurbs.c:177,18'
          Dst:             lwflags
        - Src:             'lwgeom_nurbs.c:181,19'
          Dst:             ptarray_construct_empty
    - functionName:    lwnurbscurve_construct
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          449
      EdgeCount:       99
      CyclomaticComplexity: 28
      functionsReached:
        - lwalloc
        - lwerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:69,3'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:76,3'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:81,3'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:86,3'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:93,3'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:100,4'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:108,3'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:115,4'
          Dst:             lwerror
        - Src:             'lwgeom_nurbs.c:121,11'
          Dst:             lwalloc
        - Src:             'lwgeom_nurbs.c:141,21'
          Dst:             lwalloc
        - Src:             'lwgeom_nurbs.c:150,19'
          Dst:             lwalloc
    - functionName:    lwnurbscurve_clone_deep
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          86
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - gbox_copy
        - lwnurbscurve_construct
        - ptarray_clone_deep
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:234,39'
          Dst:             ptarray_clone_deep
        - Src:             'lwgeom_nurbs.c:237,29'
          Dst:             gbox_copy
        - Src:             'lwgeom_nurbs.c:240,9'
          Dst:             lwnurbscurve_construct
    - functionName:    lwnurbscurve_free
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_nurbs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          91
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - lwfree
        - ptarray_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_nurbs.c:204,3'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:207,3'
          Dst:             ptarray_free
        - Src:             'lwgeom_nurbs.c:210,3'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:213,3'
          Dst:             lwfree
        - Src:             'lwgeom_nurbs.c:215,2'
          Dst:             lwfree
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_area_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwspheroid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - geod_init
        - geod_polygon_addpoint
        - geod_polygon_compute
        - geod_polygon_init
        - getPoint2d_p
        - lwerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwspheroid.c:149,2'
          Dst:             geod_init
        - Src:             'lwspheroid.c:151,2'
          Dst:             geod_polygon_init
        - Src:             'lwspheroid.c:159,3'
          Dst:             getPoint2d_p
        - Src:             'lwspheroid.c:160,3'
          Dst:             geod_polygon_addpoint
        - Src:             'lwspheroid.c:163,6'
          Dst:             geod_polygon_compute
        - Src:             'lwspheroid.c:166,3'
          Dst:             lwerror
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_area_spheroid
      functionSourceFile: '/src/postgis/liblwgeom/lwspheroid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          190
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - lwgeom_area_spheroid
        - lwgeom_is_empty
        - ptarray_area_spheroid
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwspheroid.c:654,7'
          Dst:             lwgeom_is_empty
        - Src:             'lwspheroid.c:676,11'
          Dst:             ptarray_area_spheroid
        - Src:             'lwspheroid.c:681,13'
          Dst:             ptarray_area_spheroid
        - Src:             'lwspheroid.c:695,12'
          Dst:             lwgeom_area_spheroid
    - functionName:    spheroid_project
      functionSourceFile: '/src/postgis/liblwgeom/lwspheroid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          64
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - geod_direct
        - geod_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwspheroid.c:131,2'
          Dst:             geod_init
        - Src:             'lwspheroid.c:135,2'
          Dst:             geod_direct
    - functionName:    spheroid_direction
      functionSourceFile: '/src/postgis/liblwgeom/lwspheroid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          62
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - geod_init
        - geod_inverse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwspheroid.c:108,2'
          Dst:             geod_init
        - Src:             'lwspheroid.c:114,2'
          Dst:             geod_inverse
    - functionName:    spheroid_distance
      functionSourceFile: '/src/postgis/liblwgeom/lwspheroid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - geod_init
        - geod_inverse
        - geographic_point_equals
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lwspheroid.c:84,7'
          Dst:             geographic_point_equals
        - Src:             'lwspheroid.c:87,2'
          Dst:             geod_init
        - Src:             'lwspheroid.c:93,2'
          Dst:             geod_inverse
    - functionName:    spheroid_init
      functionSourceFile: '/src/postgis/liblwgeom/lwspheroid.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          47
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    div1e8
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    to_chars_uint64
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          271
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - div1e8
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'd2s.c:479,22'
          Dst:             div1e8
    - functionName:    pow_10
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pow5Factor
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - div5
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './../ryu/d2s_intrinsics.h:198,24'
          Dst:             div5
    - functionName:    div5
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mulShift
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    div100
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    multipleOfPowerOf2
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log10Pow5
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    multipleOfPowerOf5
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pow5Factor
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './../ryu/d2s_intrinsics.h:212,10'
          Dst:             pow5Factor
    - functionName:    mulShiftAll
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mulShift
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'd2s.c:118,9'
          Dst:             mulShift
        - Src:             'd2s.c:119,9'
          Dst:             mulShift
        - Src:             'd2s.c:120,10'
          Dst:             mulShift
    - functionName:    pow5bits
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log10Pow2
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    decimalLength17
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          157
      EdgeCount:       49
      CyclomaticComplexity: 17
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    d2sexp_buffered_n
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - double
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          278
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - copy_special_str
        - d2d
        - d2d_small_int
        - decimalLength17
        - div10
        - double_to_bits
        - to_chars_fixed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'd2s.c:736,25'
          Dst:             double_to_bits
        - Src:             'd2s.c:752,12'
          Dst:             copy_special_str
        - Src:             'd2s.c:756,27'
          Dst:             d2d_small_int
        - Src:             'd2s.c:763,26'
          Dst:             div10
        - Src:             'd2s.c:772,9'
          Dst:             d2d
        - Src:             'd2s.c:776,37'
          Dst:             decimalLength17
        - Src:             'd2s.c:779,15'
          Dst:             to_chars_fixed
    - functionName:    double_to_bits
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy_special_str
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/common.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    d2d_small_int
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    div10
      functionSourceFile: '/src/postgis/deps/ryu/./../ryu/d2s_intrinsics.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    d2d
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         72
      ICount:          630
      EdgeCount:       95
      CyclomaticComplexity: 25
      functionsReached:
        - div10
        - div100
        - div5
        - log10Pow2
        - log10Pow5
        - mulShiftAll
        - multipleOfPowerOf2
        - multipleOfPowerOf5
        - pow5bits
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'd2s.c:249,24'
          Dst:             log10Pow2
        - Src:             'd2s.c:251,50'
          Dst:             pow5bits
        - Src:             'd2s.c:258,10'
          Dst:             mulShiftAll
        - Src:             'd2s.c:268,65'
          Dst:             div5
        - Src:             'd2s.c:270,29'
          Dst:             multipleOfPowerOf5
        - Src:             'd2s.c:275,29'
          Dst:             multipleOfPowerOf5
        - Src:             'd2s.c:278,15'
          Dst:             multipleOfPowerOf5
        - Src:             'd2s.c:283,24'
          Dst:             log10Pow5
        - Src:             'd2s.c:286,23'
          Dst:             pow5bits
        - Src:             'd2s.c:293,10'
          Dst:             mulShiftAll
        - Src:             'd2s.c:316,27'
          Dst:             multipleOfPowerOf2
        - Src:             'd2s.c:337,32'
          Dst:             div10
        - Src:             'd2s.c:338,32'
          Dst:             div10
        - Src:             'd2s.c:343,32'
          Dst:             div10
        - Src:             'd2s.c:359,34'
          Dst:             div10
        - Src:             'd2s.c:364,34'
          Dst:             div10
        - Src:             'd2s.c:365,34'
          Dst:             div10
        - Src:             'd2s.c:388,31'
          Dst:             div100
        - Src:             'd2s.c:389,31'
          Dst:             div100
        - Src:             'd2s.c:391,33'
          Dst:             div100
        - Src:             'd2s.c:404,32'
          Dst:             div10
        - Src:             'd2s.c:405,32'
          Dst:             div10
        - Src:             'd2s.c:409,32'
          Dst:             div10
    - functionName:    to_chars_fixed
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - int
        - bool
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          400
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - decimalLength17
        - div10
        - pow_10
        - to_chars_uint64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'd2s.c:540,21'
          Dst:             decimalLength17
        - Src:             'd2s.c:569,30'
          Dst:             pow_10
        - Src:             'd2s.c:580,16'
          Dst:             decimalLength17
        - Src:             'd2s.c:589,15'
          Dst:             div10
        - Src:             'd2s.c:606,17'
          Dst:             pow_10
        - Src:             'd2s.c:611,23'
          Dst:             pow_10
        - Src:             'd2s.c:614,27'
          Dst:             decimalLength17
        - Src:             'd2s.c:643,11'
          Dst:             to_chars_uint64
        - Src:             'd2s.c:652,12'
          Dst:             to_chars_uint64
    - functionName:    d2sfixed_buffered_n
      functionSourceFile: '/src/postgis/deps/ryu/d2s.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - double
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          151
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - copy_special_str
        - d2d
        - d2d_small_int
        - div10
        - double_to_bits
        - to_chars_fixed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'd2s.c:692,25'
          Dst:             double_to_bits
        - Src:             'd2s.c:708,12'
          Dst:             copy_special_str
        - Src:             'd2s.c:712,27'
          Dst:             d2d_small_int
        - Src:             'd2s.c:719,26'
          Dst:             div10
        - Src:             'd2s.c:728,9'
          Dst:             d2d
        - Src:             'd2s.c:731,10'
          Dst:             to_chars_fixed
    - functionName:    stringbuffer_makeroom
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          83
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwrealloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:82,18'
          Dst:             lwrealloc
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    stringbuffer_trim_trailing_zeroes
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          166
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_trim_trailing_white
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_avprintf
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          134
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - stringbuffer_makeroom
        - vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:210,8'
          Dst:             vsnprintf
        - Src:             'stringbuffer.c:230,3'
          Dst:             stringbuffer_makeroom
        - Src:             'stringbuffer.c:234,9'
          Dst:             vsnprintf
    - functionName:    stringbuffer_aprintf
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_avprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:259,6'
          Dst:             stringbuffer_avprintf
    - functionName:    stringbuffer_copy
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_getstring
        - stringbuffer_set
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:190,24'
          Dst:             stringbuffer_getstring
        - Src:             'stringbuffer.c:190,2'
          Dst:             stringbuffer_set
    - functionName:    stringbuffer_getstring
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_set
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_append
        - stringbuffer_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:180,2'
          Dst:             stringbuffer_clear
        - Src:             'stringbuffer.c:181,2'
          Dst:             stringbuffer_append
    - functionName:    stringbuffer_clear
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_append
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_append_len
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:107,13'
          Dst:             strlen
        - Src:             './stringbuffer.h:108,2'
          Dst:             stringbuffer_append_len
    - functionName:    stringbuffer_append_len
      functionSourceFile: '/src/postgis/liblwgeom/./stringbuffer.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_makeroom
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './stringbuffer.h:96,2'
          Dst:             stringbuffer_makeroom
    - functionName:    stringbuffer_getlength
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_getvarlenacopy
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:157,39'
          Dst:             lwalloc
    - functionName:    stringbuffer_getvarlena
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_getstringcopy
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:139,14'
          Dst:             lwalloc
    - functionName:    stringbuffer_lastchar
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stringbuffer_destroy
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwfree
        - stringbuffer_release
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:89,3'
          Dst:             stringbuffer_release
        - Src:             'stringbuffer.c:90,3'
          Dst:             lwfree
    - functionName:    stringbuffer_release
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwfree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:50,22'
          Dst:             lwfree
    - functionName:    stringbuffer_init_varlena
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_append_len
        - stringbuffer_init_with_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:62,2'
          Dst:             stringbuffer_init_with_size
        - Src:             'stringbuffer.c:64,2'
          Dst:             stringbuffer_append_len
    - functionName:    stringbuffer_init_with_size
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:41,17'
          Dst:             lwalloc
    - functionName:    stringbuffer_init
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_init_with_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:56,2'
          Dst:             stringbuffer_init_with_size
    - functionName:    stringbuffer_create_with_size
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - stringbuffer_init_with_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:76,6'
          Dst:             lwalloc
        - Src:             'stringbuffer.c:77,2'
          Dst:             stringbuffer_init_with_size
    - functionName:    stringbuffer_create
      functionSourceFile: '/src/postgis/liblwgeom/stringbuffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stringbuffer_create_with_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'stringbuffer.c:35,9'
          Dst:             stringbuffer_create_with_size
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    project_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2539
      functionLinenumberEnd: 2551
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          127
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - distance2d_pt_pt
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:2541,15'
          Dst:             distance2d_pt_pt
    - functionName:    distance2d_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2428
      functionLinenumberEnd: 2432
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hypot
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:2432,9'
          Dst:             hypot
    - functionName:    hypot
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    project_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2515
      functionLinenumberEnd: 2530
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          100
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    azimuth_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2492
      functionLinenumberEnd: 2507
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    distance2d_sqr_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    distance2d_sqr_pt_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2438
      functionLinenumberEnd: 2484
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          145
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - distance2d_sqr_pt_pt
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:2441,10'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'measures.c:2466,10'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'measures.c:2468,10'
          Dst:             distance2d_sqr_pt_pt
    - functionName:    lw_dist2d_selected_seg_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2206
      functionLinenumberEnd: 2228
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          154
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - lw_dist2d_pt_seg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:2210,10'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:2217,10'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:2220,7'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:2220,42'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:2224,12'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:2224,47'
          Dst:             lw_dist2d_pt_seg
    - functionName:    lw_dist2d_pt_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2240
      functionLinenumberEnd: 2390
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          326
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_pt
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:2249,10'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:2297,11'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:2299,11'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:2306,10'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:2313,10'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:2321,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:2342,10'
          Dst:             lw_dist2d_pt_pt
    - functionName:    lw_dist2d_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2396
      functionLinenumberEnd: 2419
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          88
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist2d_distpts_set
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          65
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    24
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist2d_pre_seg_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2101
      functionLinenumberEnd: 2197
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          474
      EdgeCount:       81
      CyclomaticComplexity: 21
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_pt
        - lw_dist2d_selected_seg_seg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:2110,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2111,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2112,2'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:2126,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2129,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2139,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2149,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2155,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2158,12'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2168,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2170,10'
          Dst:             lw_dist2d_selected_seg_seg
        - Src:             'measures.c:2175,12'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2186,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2188,10'
          Dst:             lw_dist2d_selected_seg_seg
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    60
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    struct_cmp_by_measure
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2092
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist2d_circle_intersections
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          160
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lw_pt_in_arc
        - p2d_same
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1607,6'
          Dst:             p2d_same
        - Src:             'measures.c:1623,6'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1629,6'
          Dst:             lw_pt_in_arc
    - functionName:    lw_dist2d_circle_circle_intersections
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1659
      functionLinenumberEnd: 1702
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - 'N/A'
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          159
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist2d_arc_arc
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1710
      functionLinenumberEnd: 1850
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         63
      ICount:          467
      EdgeCount:       84
      CyclomaticComplexity: 23
      functionsReached:
        - distance2d_pt_pt
        - lw_arc_center
        - lw_arc_is_pt
        - lw_dist2d_circle_circle_intersections
        - lw_dist2d_circle_intersections
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_arc
        - lw_dist2d_pt_pt
        - lw_dist2d_seg_arc
        - lw_dist2d_seg_seg
        - lw_pt_in_arc
        - lwerror
        - p2d_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1720,3'
          Dst:             lwerror
        - Src:             'measures.c:1723,6'
          Dst:             lw_arc_is_pt
        - Src:             'measures.c:1723,34'
          Dst:             lw_arc_is_pt
        - Src:             'measures.c:1724,10'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1725,11'
          Dst:             lw_arc_is_pt
        - Src:             'measures.c:1726,10'
          Dst:             lw_dist2d_pt_arc
        - Src:             'measures.c:1727,11'
          Dst:             lw_arc_is_pt
        - Src:             'measures.c:1728,10'
          Dst:             lw_dist2d_pt_arc
        - Src:             'measures.c:1731,13'
          Dst:             lw_arc_center
        - Src:             'measures.c:1732,13'
          Dst:             lw_arc_center
        - Src:             'measures.c:1736,10'
          Dst:             lw_dist2d_seg_seg
        - Src:             'measures.c:1740,10'
          Dst:             lw_dist2d_seg_arc
        - Src:             'measures.c:1744,10'
          Dst:             lw_dist2d_seg_arc
        - Src:             'measures.c:1747,6'
          Dst:             distance2d_pt_pt
        - Src:             'measures.c:1750,19'
          Dst:             p2d_same
        - Src:             'measures.c:1773,22'
          Dst:             lw_dist2d_circle_circle_intersections
        - Src:             'measures.c:1784,8'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1785,5'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1787,5'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1804,4'
          Dst:             lw_dist2d_circle_intersections
        - Src:             'measures.c:1810,4'
          Dst:             lw_dist2d_circle_intersections
        - Src:             'measures.c:1817,3'
          Dst:             lw_dist2d_circle_intersections
        - Src:             'measures.c:1823,3'
          Dst:             lw_dist2d_circle_intersections
        - Src:             'measures.c:1829,3'
          Dst:             lw_dist2d_circle_intersections
        - Src:             'measures.c:1835,3'
          Dst:             lw_dist2d_circle_intersections
        - Src:             'measures.c:1847,4'
          Dst:             lw_dist2d_pt_pt
    - functionName:    lw_dist2d_pt_arc
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1570
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          163
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - distance2d_pt_pt
        - lw_arc_center
        - lw_arc_is_pt
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_pt
        - lw_dist2d_pt_seg
        - lw_pt_in_arc
        - lwerror
        - p2d_same
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1531,3'
          Dst:             lwerror
        - Src:             'measures.c:1534,6'
          Dst:             lw_arc_is_pt
        - Src:             'measures.c:1535,10'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1538,13'
          Dst:             lw_arc_center
        - Src:             'measures.c:1542,10'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1545,6'
          Dst:             distance2d_pt_pt
        - Src:             'measures.c:1550,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1559,6'
          Dst:             p2d_same
        - Src:             'measures.c:1559,26'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1561,3'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1566,3'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1567,3'
          Dst:             lw_dist2d_pt_pt
    - functionName:    lw_dist2d_seg_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1860
      functionLinenumberEnd: 1958
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          588
      EdgeCount:       99
      CyclomaticComplexity: 28
      functionsReached:
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_seg
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1867,10'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1874,10'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1907,8'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1907,43'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1911,13'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1911,48'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1922,8'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1922,43'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1926,13'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1926,48'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1954,4'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_seg_arc
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1521
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          552
      EdgeCount:       68
      CyclomaticComplexity: 20
      functionsReached:
        - lw_arc_center
        - lw_arc_is_pt
        - lw_dist2d_distpts_init
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_arc
        - lw_dist2d_pt_pt
        - lw_dist2d_pt_seg
        - lw_dist2d_seg_seg
        - lw_pt_in_arc
        - lw_pt_in_seg
        - lwerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1380,3'
          Dst:             lwerror
        - Src:             'measures.c:1383,6'
          Dst:             lw_arc_is_pt
        - Src:             'measures.c:1384,10'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1387,13'
          Dst:             lw_arc_center
        - Src:             'measures.c:1391,10'
          Dst:             lw_dist2d_seg_seg
        - Src:             'measures.c:1394,2'
          Dst:             lw_dist2d_distpts_init
        - Src:             'measures.c:1395,6'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1396,3'
          Dst:             lwerror
        - Src:             'measures.c:1437,15'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1438,15'
          Dst:             lw_pt_in_seg
        - Src:             'measures.c:1442,4'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1447,15'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1448,15'
          Dst:             lw_pt_in_seg
        - Src:             'measures.c:1452,4'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1463,15'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1464,15'
          Dst:             lw_pt_in_seg
        - Src:             'measures.c:1469,4'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1482,15'
          Dst:             lw_pt_in_arc
        - Src:             'measures.c:1483,15'
          Dst:             lw_pt_in_seg
        - Src:             'measures.c:1487,11'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1499,3'
          Dst:             lw_dist2d_pt_arc
        - Src:             'measures.c:1500,3'
          Dst:             lw_dist2d_pt_arc
        - Src:             'measures.c:1506,3'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1507,3'
          Dst:             lw_dist2d_pt_seg
        - Src:             'measures.c:1513,3'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1514,3'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1515,3'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1516,3'
          Dst:             lw_dist2d_pt_pt
    - functionName:    lw_dist2d_distpts_init
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          52
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist2d_ptarrayarc_ptarrayarc
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          151
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_arc_arc
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1328,3'
          Dst:             lwerror
        - Src:             'measures.c:1333,8'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1336,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1337,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1338,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1341,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1342,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1345,5'
          Dst:             lw_dist2d_arc_arc
    - functionName:    lw_curvering_getfirstpoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 884
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
        - lw_curvering_getfirstpoint2d_cp
        - lwerror
        - lwnurbscurve_evaluate
        - lwpoint_free
        - lwpoint_getPoint2d_p
      functionUses:    9
      BranchProfiles:
        - Branch String:   'measures.c:885,2'
          Branch Sides:    []
      Callsites:
        - Src:             'measures.c:888,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:890,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:894,10'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:898,17'
          Dst:             lwnurbscurve_evaluate
        - Src:             'measures.c:899,27'
          Dst:             lwpoint_getPoint2d_p
        - Src:             'measures.c:901,4'
          Dst:             lwpoint_free
        - Src:             'measures.c:902,4'
          Dst:             lwerror
        - Src:             'measures.c:904,3'
          Dst:             lwpoint_free
        - Src:             'measures.c:908,3'
          Dst:             lwerror
    - functionName:    lw_dist2d_ptarray_ptarrayarc
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1260
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          168
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_seg_arc
        - lwerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1273,3'
          Dst:             lwerror
        - Src:             'measures.c:1279,3'
          Dst:             lwerror
        - Src:             'measures.c:1284,8'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1287,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1288,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1291,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1292,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1295,5'
          Dst:             lw_dist2d_seg_arc
    - functionName:    lw_dist2d_ptarray_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1211
      functionLinenumberEnd: 1253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          181
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_pt
        - lw_dist2d_seg_seg
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1225,12'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1228,14'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1229,5'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1235,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1238,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1239,13'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1242,12'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1244,5'
          Dst:             lw_dist2d_seg_seg
    - functionName:    lw_dist2d_pt_ptarrayarc
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1204
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          157
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_arc
        - lw_dist2d_pt_pt
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1173,3'
          Dst:             lwerror
        - Src:             'measures.c:1179,3'
          Dst:             lwerror
        - Src:             'measures.c:1183,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1185,7'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1191,8'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1192,8'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1194,7'
          Dst:             lw_dist2d_pt_arc
    - functionName:    lw_dist2d_pt_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1126
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_pt
        - lw_dist2d_pt_seg
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1130,10'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1134,7'
          Dst:             lw_dist2d_pt_pt
        - Src:             'measures.c:1142,9'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1143,8'
          Dst:             lw_dist2d_pt_seg
    - functionName:    lw_dist2d_fast_ptarray_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1977
      functionLinenumberEnd: 2088
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          460
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pre_seg_seg
        - lwalloc
        - lwfree
        - qsort
        - struct_cmp_by_measure
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1990,24'
          Dst:             lwalloc
        - Src:             'measures.c:1991,24'
          Dst:             lwalloc
        - Src:             'measures.c:2020,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2027,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2044,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2052,11'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:2063,2'
          Dst:             qsort
        - Src:             'measures.c:2063,2'
          Dst:             struct_cmp_by_measure
        - Src:             'measures.c:2064,2'
          Dst:             qsort
        - Src:             'measures.c:2064,2'
          Dst:             struct_cmp_by_measure
        - Src:             'measures.c:2068,8'
          Dst:             lw_dist2d_pre_seg_seg
        - Src:             'measures.c:2070,4'
          Dst:             lwfree
        - Src:             'measures.c:2071,4'
          Dst:             lwfree
        - Src:             'measures.c:2078,8'
          Dst:             lw_dist2d_pre_seg_seg
        - Src:             'measures.c:2080,4'
          Dst:             lwfree
        - Src:             'measures.c:2081,4'
          Dst:             lwfree
        - Src:             'measures.c:2085,2'
          Dst:             lwfree
        - Src:             'measures.c:2086,2'
          Dst:             lwfree
    - functionName:    lw_dist2d_curvepoly_curvepoly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1067
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          274
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - lw_curvering_getfirstpoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_recursive
        - lwerror
        - lwgeom_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1073,10'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:1078,7'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:1079,6'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:1081,8'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:1082,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:1083,11'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:1088,7'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:1090,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:1091,11'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:1095,7'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:1097,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:1098,11'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:1102,7'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:1103,6'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:1105,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1109,7'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:1110,6'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:1112,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1116,2'
          Dst:             lwerror
    - functionName:    lw_dist2d_recursive
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          415
      EdgeCount:       107
      CyclomaticComplexity: 31
      functionsReached:
        - lw_dist2d_check_overlap
        - lw_dist2d_distribute_bruteforce
        - lw_dist2d_distribute_fast
        - lw_dist2d_is_collection
        - lw_dist2d_recursive
        - lwgeom_add_bbox
        - lwgeom_as_lwcollection
        - lwgeom_is_empty
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:311,6'
          Dst:             lw_dist2d_is_collection
        - Src:             'measures.c:314,8'
          Dst:             lwgeom_as_lwcollection
        - Src:             'measures.c:317,6'
          Dst:             lw_dist2d_is_collection
        - Src:             'measures.c:320,8'
          Dst:             lwgeom_as_lwcollection
        - Src:             'measures.c:327,7'
          Dst:             lw_dist2d_is_collection
        - Src:             'measures.c:334,7'
          Dst:             lwgeom_is_empty
        - Src:             'measures.c:337,7'
          Dst:             lw_dist2d_is_collection
        - Src:             'measures.c:340,9'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:346,8'
          Dst:             lw_dist2d_is_collection
        - Src:             'measures.c:353,8'
          Dst:             lw_dist2d_is_collection
        - Src:             'measures.c:356,10'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:362,5'
          Dst:             lwgeom_add_bbox
        - Src:             'measures.c:365,5'
          Dst:             lwgeom_add_bbox
        - Src:             'measures.c:368,8'
          Dst:             lwgeom_is_empty
        - Src:             'measures.c:368,31'
          Dst:             lwgeom_is_empty
        - Src:             'measures.c:371,36'
          Dst:             lw_dist2d_check_overlap
        - Src:             'measures.c:375,10'
          Dst:             lw_dist2d_distribute_fast
        - Src:             'measures.c:380,10'
          Dst:             lw_dist2d_distribute_bruteforce
    - functionName:    lw_dist2d_is_collection
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          58
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    6
      BranchProfiles:
        - Branch String:   'measures.c:260,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    4
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lw_dist2d_check_overlap
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist2d_distribute_fast
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 14
      functionsReached:
        - lw_dist2d_fast_ptarray_ptarray
        - lwerror
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'measures.c:563,2'
          Branch Sides:    []
        - Branch String:   'measures.c:578,2'
          Branch Sides:    []
      Callsites:
        - Src:             'measures.c:575,45'
          Dst:             lwtype_name
        - Src:             'measures.c:575,3'
          Dst:             lwerror
        - Src:             'measures.c:590,45'
          Dst:             lwtype_name
        - Src:             'measures.c:590,3'
          Dst:             lwerror
        - Src:             'measures.c:594,9'
          Dst:             lw_dist2d_fast_ptarray_ptarray
    - functionName:    lw_dist2d_distribute_bruteforce
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          491
      EdgeCount:       99
      CyclomaticComplexity: 48
      functionsReached:
        - lw_dist2d_circstring_circstring
        - lw_dist2d_circstring_curvepoly
        - lw_dist2d_circstring_poly
        - lw_dist2d_curvepoly_curvepoly
        - lw_dist2d_line_circstring
        - lw_dist2d_line_curvepoly
        - lw_dist2d_line_line
        - lw_dist2d_line_poly
        - lw_dist2d_line_tri
        - lw_dist2d_point_circstring
        - lw_dist2d_point_curvepoly
        - lw_dist2d_point_line
        - lw_dist2d_point_point
        - lw_dist2d_point_poly
        - lw_dist2d_point_tri
        - lw_dist2d_poly_curvepoly
        - lw_dist2d_poly_poly
        - lw_dist2d_tri_circstring
        - lw_dist2d_tri_curvepoly
        - lw_dist2d_tri_poly
        - lw_dist2d_tri_tri
        - lwerror
        - lwtype_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'measures.c:399,2'
          Branch Sides:    []
        - Branch String:   'measures.c:404,3'
          Branch Sides:    []
        - Branch String:   'measures.c:426,3'
          Branch Sides:    []
        - Branch String:   'measures.c:449,3'
          Branch Sides:    []
        - Branch String:   'measures.c:473,3'
          Branch Sides:    []
        - Branch String:   'measures.c:498,3'
          Branch Sides:    []
        - Branch String:   'measures.c:522,3'
          Branch Sides:    []
      Callsites:
        - Src:             'measures.c:407,11'
          Dst:             lw_dist2d_point_point
        - Src:             'measures.c:409,11'
          Dst:             lw_dist2d_point_line
        - Src:             'measures.c:411,11'
          Dst:             lw_dist2d_point_tri
        - Src:             'measures.c:413,11'
          Dst:             lw_dist2d_point_poly
        - Src:             'measures.c:415,11'
          Dst:             lw_dist2d_point_circstring
        - Src:             'measures.c:417,11'
          Dst:             lw_dist2d_point_curvepoly
        - Src:             'measures.c:419,59'
          Dst:             lwtype_name
        - Src:             'measures.c:419,4'
          Dst:             lwerror
        - Src:             'measures.c:430,11'
          Dst:             lw_dist2d_point_line
        - Src:             'measures.c:432,11'
          Dst:             lw_dist2d_line_line
        - Src:             'measures.c:434,11'
          Dst:             lw_dist2d_line_tri
        - Src:             'measures.c:436,11'
          Dst:             lw_dist2d_line_poly
        - Src:             'measures.c:438,11'
          Dst:             lw_dist2d_line_circstring
        - Src:             'measures.c:440,11'
          Dst:             lw_dist2d_line_curvepoly
        - Src:             'measures.c:442,59'
          Dst:             lwtype_name
        - Src:             'measures.c:442,4'
          Dst:             lwerror
        - Src:             'measures.c:453,11'
          Dst:             lw_dist2d_point_tri
        - Src:             'measures.c:456,11'
          Dst:             lw_dist2d_line_tri
        - Src:             'measures.c:458,11'
          Dst:             lw_dist2d_tri_tri
        - Src:             'measures.c:460,11'
          Dst:             lw_dist2d_tri_poly
        - Src:             'measures.c:462,11'
          Dst:             lw_dist2d_tri_circstring
        - Src:             'measures.c:464,11'
          Dst:             lw_dist2d_tri_curvepoly
        - Src:             'measures.c:466,59'
          Dst:             lwtype_name
        - Src:             'measures.c:466,4'
          Dst:             lwerror
        - Src:             'measures.c:477,11'
          Dst:             lw_dist2d_point_circstring
        - Src:             'measures.c:480,11'
          Dst:             lw_dist2d_line_circstring
        - Src:             'measures.c:483,11'
          Dst:             lw_dist2d_tri_circstring
        - Src:             'measures.c:485,11'
          Dst:             lw_dist2d_circstring_poly
        - Src:             'measures.c:487,11'
          Dst:             lw_dist2d_circstring_circstring
        - Src:             'measures.c:489,11'
          Dst:             lw_dist2d_circstring_curvepoly
        - Src:             'measures.c:491,59'
          Dst:             lwtype_name
        - Src:             'measures.c:491,4'
          Dst:             lwerror
        - Src:             'measures.c:501,11'
          Dst:             lw_dist2d_point_poly
        - Src:             'measures.c:503,11'
          Dst:             lw_dist2d_line_poly
        - Src:             'measures.c:505,11'
          Dst:             lw_dist2d_tri_poly
        - Src:             'measures.c:507,11'
          Dst:             lw_dist2d_circstring_poly
        - Src:             'measures.c:510,11'
          Dst:             lw_dist2d_poly_poly
        - Src:             'measures.c:513,11'
          Dst:             lw_dist2d_poly_curvepoly
        - Src:             'measures.c:515,59'
          Dst:             lwtype_name
        - Src:             'measures.c:515,4'
          Dst:             lwerror
        - Src:             'measures.c:525,11'
          Dst:             lw_dist2d_point_curvepoly
        - Src:             'measures.c:527,11'
          Dst:             lw_dist2d_line_curvepoly
        - Src:             'measures.c:529,11'
          Dst:             lw_dist2d_tri_curvepoly
        - Src:             'measures.c:531,11'
          Dst:             lw_dist2d_poly_curvepoly
        - Src:             'measures.c:533,11'
          Dst:             lw_dist2d_circstring_curvepoly
        - Src:             'measures.c:536,11'
          Dst:             lw_dist2d_curvepoly_curvepoly
        - Src:             'measures.c:538,59'
          Dst:             lwtype_name
        - Src:             'measures.c:538,4'
          Dst:             lwerror
        - Src:             'measures.c:544,58'
          Dst:             lwtype_name
        - Src:             'measures.c:544,3'
          Dst:             lwerror
    - functionName:    lw_dist2d_point_point
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 616
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_pt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:614,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:615,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:616,9'
          Dst:             lw_dist2d_pt_pt
    - functionName:    lw_dist2d_point_line
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_ptarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:624,21'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:625,9'
          Dst:             lw_dist2d_pt_ptarray
    - functionName:    lw_dist2d_point_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_ptarray
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:631,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:633,30'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:635,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:639,9'
          Dst:             lw_dist2d_pt_ptarray
    - functionName:    lw_dist2d_point_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 681
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          121
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_pt_ptarray
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:658,21'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:662,10'
          Dst:             lw_dist2d_pt_ptarray
        - Src:             'measures.c:665,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:666,10'
          Dst:             lw_dist2d_pt_ptarray
        - Src:             'measures.c:675,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:676,11'
          Dst:             lw_dist2d_pt_ptarray
        - Src:             'measures.c:679,2'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_point_circstring
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_pt_ptarrayarc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:646,6'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:647,9'
          Dst:             lw_dist2d_pt_ptarrayarc
    - functionName:    lw_dist2d_point_curvepoly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          117
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_recursive
        - lwerror
        - lwgeom_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:686,21'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:689,3'
          Dst:             lwerror
        - Src:             'measures.c:692,6'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:693,10'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:700,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:701,11'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:704,2'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_line_line
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_ptarray_ptarray
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:713,9'
          Dst:             lw_dist2d_ptarray_ptarray
    - functionName:    lw_dist2d_line_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_ptarray_ptarray
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:719,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:721,30'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:723,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:727,9'
          Dst:             lw_dist2d_ptarray_ptarray
    - functionName:    lw_dist2d_line_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          180
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_ptarray_ptarray
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:751,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:754,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:755,10'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:759,8'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:769,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:775,3'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_line_circstring
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_ptarray_ptarrayarc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:733,9'
          Dst:             lw_dist2d_ptarray_ptarrayarc
    - functionName:    lw_dist2d_line_curvepoly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          166
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_recursive
        - lwgeom_contains_point
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:783,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:786,6'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:787,10'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:791,8'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:801,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:807,3'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_tri_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_ptarray_ptarray
        - ptarray_contains_point
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:817,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:818,30'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:820,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:824,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:825,30'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:827,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:831,9'
          Dst:             lw_dist2d_ptarray_ptarray
    - functionName:    lw_dist2d_tri_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          224
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_ptarray_ptarray
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:838,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:842,10'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:845,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:847,8'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:855,24'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:856,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:858,4'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:865,8'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:875,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:879,2'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_tri_circstring
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lw_curvering_getfirstpoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_ptarray_ptarrayarc
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:960,22'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:961,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:963,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:967,9'
          Dst:             lw_dist2d_ptarray_ptarrayarc
    - functionName:    lw_dist2d_tri_curvepoly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          206
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - getPoint2d_cp
        - lw_curvering_getfirstpoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_recursive
        - lwgeom_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:916,22'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:921,10'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:924,6'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:926,7'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:929,44'
          Dst:             lw_curvering_getfirstpoint2d_cp
        - Src:             'measures.c:929,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:931,4'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:938,8'
          Dst:             lw_dist2d_recursive
        - Src:             'measures.c:948,7'
          Dst:             lwgeom_contains_point
        - Src:             'measures.c:952,2'
          Dst:             lw_dist2d_distpts_set
    - functionName:    lw_dist2d_circstring_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_line_curvepoly
        - lwcurvepoly_construct_from_lwpoly
        - lwgeom_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1047,27'
          Dst:             lwcurvepoly_construct_from_lwpoly
        - Src:             'measures.c:1048,11'
          Dst:             lw_dist2d_line_curvepoly
        - Src:             'measures.c:1049,2'
          Dst:             lwgeom_free
    - functionName:    lw_dist2d_circstring_circstring
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_ptarrayarc_ptarrayarc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1062,9'
          Dst:             lw_dist2d_ptarrayarc_ptarrayarc
    - functionName:    lw_dist2d_circstring_curvepoly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1055
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_line_curvepoly
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1056,9'
          Dst:             lw_dist2d_line_curvepoly
    - functionName:    lw_dist2d_poly_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          272
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - getPoint2d_cp
        - lw_dist2d_distpts_set
        - lw_dist2d_ptarray_ptarray
        - lwerror
        - ptarray_contains_point
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:988,10'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:993,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:994,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:996,8'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:997,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:998,11'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:1003,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1005,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:1006,11'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:1010,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1012,7'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:1013,11'
          Dst:             lw_dist2d_ptarray_ptarray
        - Src:             'measures.c:1017,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1018,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:1020,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1024,7'
          Dst:             getPoint2d_cp
        - Src:             'measures.c:1025,6'
          Dst:             ptarray_contains_point
        - Src:             'measures.c:1027,3'
          Dst:             lw_dist2d_distpts_set
        - Src:             'measures.c:1031,2'
          Dst:             lwerror
    - functionName:    lw_dist2d_poly_curvepoly
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1041
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_curvepoly_curvepoly
        - lwcurvepoly_construct_from_lwpoly
        - lwgeom_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:1038,28'
          Dst:             lwcurvepoly_construct_from_lwpoly
        - Src:             'measures.c:1039,11'
          Dst:             lw_dist2d_curvepoly_curvepoly
        - Src:             'measures.c:1040,2'
          Dst:             lwgeom_free
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_mindistance2d_tolerance
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lw_dist2d_comp
        - lwerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:229,6'
          Dst:             lw_dist2d_comp
        - Src:             'measures.c:232,2'
          Dst:             lwerror
    - functionName:    lw_dist2d_comp
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_recursive
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:253,9'
          Dst:             lw_dist2d_recursive
    - functionName:    lwgeom_mindistance2d
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_mindistance2d_tolerance
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:214,9'
          Dst:             lwgeom_mindistance2d_tolerance
    - functionName:    lwgeom_maxdistance2d_tolerance
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lw_dist2d_comp
        - lwerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:200,6'
          Dst:             lw_dist2d_comp
        - Src:             'measures.c:204,2'
          Dst:             lwerror
    - functionName:    lwgeom_maxdistance2d
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_maxdistance2d_tolerance
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:184,9'
          Dst:             lwgeom_maxdistance2d_tolerance
    - functionName:    lwgeom_furthest_point
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_distancepoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:63,9'
          Dst:             lw_dist2d_distancepoint
    - functionName:    lw_dist2d_distancepoint
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          81
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lw_dist2d_comp
        - lwcollection_construct_empty
        - lwerror
        - lwpoint_make2d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:156,7'
          Dst:             lw_dist2d_comp
        - Src:             'measures.c:159,3'
          Dst:             lwerror
        - Src:             'measures.c:160,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures.c:165,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures.c:171,22'
          Dst:             lwpoint_make2d
    - functionName:    lwgeom_closest_point
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_distancepoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:57,9'
          Dst:             lw_dist2d_distancepoint
    - functionName:    lwgeom_furthest_line
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_distanceline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:51,9'
          Dst:             lw_dist2d_distanceline
    - functionName:    lw_dist2d_distanceline
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          108
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lw_dist2d_comp
        - lwcollection_construct_empty
        - lwerror
        - lwline_from_ptarray
        - lwpoint_make2d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:111,7'
          Dst:             lw_dist2d_comp
        - Src:             'measures.c:114,3'
          Dst:             lwerror
        - Src:             'measures.c:115,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures.c:122,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures.c:131,17'
          Dst:             lwpoint_make2d
        - Src:             'measures.c:132,17'
          Dst:             lwpoint_make2d
        - Src:             'measures.c:134,22'
          Dst:             lwline_from_ptarray
    - functionName:    lwgeom_closest_line
      functionSourceFile: '/src/postgis/liblwgeom/measures.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist2d_distanceline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures.c:45,9'
          Dst:             lw_dist2d_distanceline
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gbox_contains_3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_3dcross_product
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          96
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pt_in_ring_3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1574
      functionLinenumberEnd: 1693
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          507
      EdgeCount:       103
      CyclomaticComplexity: 27
      functionsReached:
        - getPoint3dz_p
        - lwerror
        - memcmp
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1583,3'
          Dst:             lwerror
        - Src:             'measures3d.c:1585,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1586,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1587,6'
          Dst:             memcmp
        - Src:             'measures3d.c:1589,3'
          Dst:             lwerror
        - Src:             'measures3d.c:1603,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1612,4'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1641,4'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1668,4'
          Dst:             getPoint3dz_p
    - functionName:    get_3dvector_from_points
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist3d_seg_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1174
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          505
      EdgeCount:       75
      CyclomaticComplexity: 23
      functionsReached:
        - get_3dvector_from_points
        - lw_dist3d_pt_pt
        - lw_dist3d_pt_seg
        - p3dz_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1182,6'
          Dst:             p3dz_same
        - Src:             'measures3d.c:1184,10'
          Dst:             lw_dist3d_pt_seg
        - Src:             'measures3d.c:1187,6'
          Dst:             p3dz_same
        - Src:             'measures3d.c:1190,10'
          Dst:             lw_dist3d_pt_seg
        - Src:             'measures3d.c:1193,6'
          Dst:             p3dz_same
        - Src:             'measures3d.c:1205,7'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1208,7'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1211,7'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1244,9'
          Dst:             lw_dist3d_pt_seg
        - Src:             'measures3d.c:1249,9'
          Dst:             lw_dist3d_pt_seg
        - Src:             'measures3d.c:1255,9'
          Dst:             lw_dist3d_pt_seg
        - Src:             'measures3d.c:1261,9'
          Dst:             lw_dist3d_pt_seg
        - Src:             'measures3d.c:1275,8'
          Dst:             lw_dist3d_pt_pt
    - functionName:    lw_dist3d_pt_seg
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1027
      functionLinenumberEnd: 1063
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          272
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - lw_dist3d_pt_pt
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1033,10'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1046,11'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1048,11'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1052,10'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1054,10'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1062,9'
          Dst:             lw_dist3d_pt_pt
    - functionName:    lw_dist3d_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1083
      functionLinenumberEnd: 1114
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          100
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    distance3d_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1067
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          45
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lw_dist3d_ptarray_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1479
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          240
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint3dz_p
        - get_3dvector_from_points
        - lw_dist3d_pt_tri
        - lw_dist3d_ptarray_ptarray
        - project_point_on_plane
        - pt_in_ring_3d
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1420,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1423,7'
          Dst:             project_point_on_plane
        - Src:             'measures3d.c:1424,2'
          Dst:             lw_dist3d_pt_tri
        - Src:             'measures3d.c:1431,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1432,8'
          Dst:             project_point_on_plane
        - Src:             'measures3d.c:1433,3'
          Dst:             lw_dist3d_pt_tri
        - Src:             'measures3d.c:1444,4'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1454,8'
          Dst:             pt_in_ring_3d
        - Src:             'measures3d.c:1477,2'
          Dst:             lw_dist3d_ptarray_ptarray
    - functionName:    project_point_on_plane
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          140
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - get_3dvector_from_points
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:67,7'
          Dst:             get_3dvector_from_points
    - functionName:    lw_dist3d_pt_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lw_dist3d_pt_pt
        - lw_dist3d_pt_ptarray
        - pt_in_ring_3d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1319,6'
          Dst:             pt_in_ring_3d
        - Src:             'measures3d.c:1322,10'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1326,10'
          Dst:             lw_dist3d_pt_ptarray
    - functionName:    lw_dist3d_ptarray_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1166
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          167
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - getPoint3dz_p
        - lw_dist3d_pt_pt
        - lw_dist3d_seg_seg
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1135,4'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1138,5'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1139,5'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1145,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1148,4'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1149,4'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1152,5'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1154,5'
          Dst:             lw_dist3d_seg_seg
    - functionName:    lw_dist3d_pt_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint3dz_p
        - lw_dist3d_pt_seg
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1004,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1009,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1010,8'
          Dst:             lw_dist3d_pt_seg
    - functionName:    lw_dist3d_ptarray_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1409
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          303
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - getPoint3dz_p
        - get_3dvector_from_points
        - lw_dist3d_pt_poly
        - lw_dist3d_ptarray_ptarray
        - project_point_on_plane
        - pt_in_ring_3d
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1340,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1343,7'
          Dst:             project_point_on_plane
        - Src:             'measures3d.c:1344,2'
          Dst:             lw_dist3d_pt_poly
        - Src:             'measures3d.c:1351,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1352,8'
          Dst:             project_point_on_plane
        - Src:             'measures3d.c:1353,3'
          Dst:             lw_dist3d_pt_poly
        - Src:             'measures3d.c:1363,4'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1373,8'
          Dst:             pt_in_ring_3d
        - Src:             'measures3d.c:1378,10'
          Dst:             pt_in_ring_3d
        - Src:             'measures3d.c:1406,3'
          Dst:             lw_dist3d_ptarray_ptarray
    - functionName:    lw_dist3d_pt_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          102
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - lw_dist3d_pt_pt
        - lw_dist3d_pt_ptarray
        - pt_in_ring_3d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1295,6'
          Dst:             pt_in_ring_3d
        - Src:             'measures3d.c:1300,8'
          Dst:             pt_in_ring_3d
        - Src:             'measures3d.c:1301,12'
          Dst:             lw_dist3d_pt_ptarray
        - Src:             'measures3d.c:1306,10'
          Dst:             lw_dist3d_pt_pt
        - Src:             'measures3d.c:1311,10'
          Dst:             lw_dist3d_pt_ptarray
    - functionName:    define_plane
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          295
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - getPoint3dz_p
        - get_3dcross_product
        - get_3dvector_from_points
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:1513,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1537,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1538,8'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1541,3'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:1542,8'
          Dst:             get_3dvector_from_points
        - Src:             'measures3d.c:1545,7'
          Dst:             get_3dcross_product
    - functionName:    lw_dist3d_tri_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 989
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          167
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - define_plane
        - lw_dist3d_ptarray_ptarray
        - lw_dist3d_ptarray_tri
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:958,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:960,14'
          Dst:             define_plane
        - Src:             'measures3d.c:961,14'
          Dst:             define_plane
        - Src:             'measures3d.c:967,11'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:971,11'
          Dst:             lw_dist3d_ptarray_tri
        - Src:             'measures3d.c:975,11'
          Dst:             lw_dist3d_ptarray_tri
        - Src:             'measures3d.c:981,7'
          Dst:             lw_dist3d_ptarray_tri
        - Src:             'measures3d.c:988,9'
          Dst:             lw_dist3d_ptarray_tri
    - functionName:    lw_dist3d_poly_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          177
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - define_plane
        - lw_dist3d_ptarray_poly
        - lw_dist3d_ptarray_ptarray
        - lw_dist3d_ptarray_tri
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:917,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:919,14'
          Dst:             define_plane
        - Src:             'measures3d.c:920,14'
          Dst:             define_plane
        - Src:             'measures3d.c:926,11'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:930,11'
          Dst:             lw_dist3d_ptarray_tri
        - Src:             'measures3d.c:934,11'
          Dst:             lw_dist3d_ptarray_poly
        - Src:             'measures3d.c:940,7'
          Dst:             lw_dist3d_ptarray_tri
        - Src:             'measures3d.c:947,9'
          Dst:             lw_dist3d_ptarray_poly
    - functionName:    lw_dist3d_poly_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          187
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - define_plane
        - lw_dist3d_ptarray_poly
        - lw_dist3d_ptarray_ptarray
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:876,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:878,14'
          Dst:             define_plane
        - Src:             'measures3d.c:879,14'
          Dst:             define_plane
        - Src:             'measures3d.c:885,11'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:889,11'
          Dst:             lw_dist3d_ptarray_poly
        - Src:             'measures3d.c:893,11'
          Dst:             lw_dist3d_ptarray_poly
        - Src:             'measures3d.c:899,7'
          Dst:             lw_dist3d_ptarray_poly
        - Src:             'measures3d.c:906,9'
          Dst:             lw_dist3d_ptarray_poly
    - functionName:    lw_dist3d_line_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - define_plane
        - lw_dist3d_ptarray_ptarray
        - lw_dist3d_ptarray_tri
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:859,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:862,7'
          Dst:             define_plane
        - Src:             'measures3d.c:863,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:865,9'
          Dst:             lw_dist3d_ptarray_tri
    - functionName:    lw_dist3d_line_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 838
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - define_plane
        - lw_dist3d_ptarray_poly
        - lw_dist3d_ptarray_ptarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:843,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:846,7'
          Dst:             define_plane
        - Src:             'measures3d.c:847,10'
          Dst:             lw_dist3d_ptarray_ptarray
        - Src:             'measures3d.c:849,9'
          Dst:             lw_dist3d_ptarray_poly
    - functionName:    lw_dist3d_line_line
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist3d_ptarray_ptarray
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:832,9'
          Dst:             lw_dist3d_ptarray_ptarray
    - functionName:    lw_dist3d_point_tri
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 805
      functionLinenumberEnd: 822
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - define_plane
        - getPoint3dz_p
        - lw_dist3d_pt_ptarray
        - lw_dist3d_pt_tri
        - project_point_on_plane
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:808,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:812,10'
          Dst:             lw_dist3d_pt_ptarray
        - Src:             'measures3d.c:815,7'
          Dst:             define_plane
        - Src:             'measures3d.c:816,10'
          Dst:             lw_dist3d_pt_ptarray
        - Src:             'measures3d.c:819,2'
          Dst:             project_point_on_plane
        - Src:             'measures3d.c:821,9'
          Dst:             lw_dist3d_pt_tri
    - functionName:    lw_dist3d_point_poly
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          74
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - define_plane
        - getPoint3dz_p
        - lw_dist3d_pt_poly
        - lw_dist3d_pt_ptarray
        - project_point_on_plane
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:783,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:787,10'
          Dst:             lw_dist3d_pt_ptarray
        - Src:             'measures3d.c:790,7'
          Dst:             define_plane
        - Src:             'measures3d.c:793,10'
          Dst:             lw_dist3d_pt_ptarray
        - Src:             'measures3d.c:797,2'
          Dst:             project_point_on_plane
        - Src:             'measures3d.c:799,9'
          Dst:             lw_dist3d_pt_poly
    - functionName:    lw_dist3d_point_line
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint3dz_p
        - lw_dist3d_pt_ptarray
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:761,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:762,9'
          Dst:             lw_dist3d_pt_ptarray
    - functionName:    lw_dist3d_point_point
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint3dz_p
        - lw_dist3d_pt_pt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:745,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:746,2'
          Dst:             getPoint3dz_p
        - Src:             'measures3d.c:748,9'
          Dst:             lw_dist3d_pt_pt
    - functionName:    lw_dist3d_distribute_bruteforce
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 599
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          348
      EdgeCount:       64
      CyclomaticComplexity: 22
      functionsReached:
        - lw_dist3d_line_line
        - lw_dist3d_line_poly
        - lw_dist3d_line_tri
        - lw_dist3d_point_line
        - lw_dist3d_point_point
        - lw_dist3d_point_poly
        - lw_dist3d_point_tri
        - lw_dist3d_poly_poly
        - lw_dist3d_poly_tri
        - lw_dist3d_tri_tri
        - lwerror
        - lwtype_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:610,11'
          Dst:             lw_dist3d_point_point
        - Src:             'measures3d.c:615,11'
          Dst:             lw_dist3d_point_line
        - Src:             'measures3d.c:620,11'
          Dst:             lw_dist3d_point_poly
        - Src:             'measures3d.c:625,11'
          Dst:             lw_dist3d_point_tri
        - Src:             'measures3d.c:629,59'
          Dst:             lwtype_name
        - Src:             'measures3d.c:629,4'
          Dst:             lwerror
        - Src:             'measures3d.c:638,11'
          Dst:             lw_dist3d_point_line
        - Src:             'measures3d.c:643,11'
          Dst:             lw_dist3d_line_line
        - Src:             'measures3d.c:648,11'
          Dst:             lw_dist3d_line_poly
        - Src:             'measures3d.c:653,11'
          Dst:             lw_dist3d_line_tri
        - Src:             'measures3d.c:657,59'
          Dst:             lwtype_name
        - Src:             'measures3d.c:657,4'
          Dst:             lwerror
        - Src:             'measures3d.c:666,11'
          Dst:             lw_dist3d_poly_poly
        - Src:             'measures3d.c:671,11'
          Dst:             lw_dist3d_point_poly
        - Src:             'measures3d.c:676,11'
          Dst:             lw_dist3d_line_poly
        - Src:             'measures3d.c:681,11'
          Dst:             lw_dist3d_poly_tri
        - Src:             'measures3d.c:685,59'
          Dst:             lwtype_name
        - Src:             'measures3d.c:685,4'
          Dst:             lwerror
        - Src:             'measures3d.c:694,11'
          Dst:             lw_dist3d_poly_tri
        - Src:             'measures3d.c:699,11'
          Dst:             lw_dist3d_point_tri
        - Src:             'measures3d.c:704,11'
          Dst:             lw_dist3d_line_tri
        - Src:             'measures3d.c:709,11'
          Dst:             lw_dist3d_tri_tri
        - Src:             'measures3d.c:713,59'
          Dst:             lwtype_name
        - Src:             'measures3d.c:713,4'
          Dst:             lwerror
        - Src:             'measures3d.c:720,58'
          Dst:             lwtype_name
        - Src:             'measures3d.c:720,3'
          Dst:             lwerror
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    5
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_solid_contains_lwgeom
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         34
      ICount:          281
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - gbox_contains_3d
        - lwcollection_free
        - lwgeom_affine
        - lwgeom_clip_to_ordinate_range
        - lwgeom_clone_deep
        - lwgeom_free
        - lwgeom_get_bbox
        - lwgeom_startpoint
        - lwpoly_contains_point
        - lwrandom_uniform
        - ptarray_contains_point
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:391,7'
          Dst:             lwgeom_get_bbox
        - Src:             'measures3d.c:392,7'
          Dst:             lwgeom_get_bbox
        - Src:             'measures3d.c:395,7'
          Dst:             gbox_contains_3d
        - Src:             'measures3d.c:401,24'
          Dst:             lwgeom_clone_deep
        - Src:             'measures3d.c:402,20'
          Dst:             lwgeom_clone_deep
        - Src:             'measures3d.c:410,9'
          Dst:             lwgeom_startpoint
        - Src:             'measures3d.c:414,22'
          Dst:             lwgeom_clip_to_ordinate_range
        - Src:             'measures3d.c:421,14'
          Dst:             lwpoly_contains_point
        - Src:             'measures3d.c:435,14'
          Dst:             ptarray_contains_point
        - Src:             'measures3d.c:447,4'
          Dst:             lwcollection_free
        - Src:             'measures3d.c:448,4'
          Dst:             lwgeom_free
        - Src:             'measures3d.c:449,4'
          Dst:             lwgeom_free
        - Src:             'measures3d.c:454,17'
          Dst:             lwrandom_uniform
        - Src:             'measures3d.c:455,17'
          Dst:             lwrandom_uniform
        - Src:             'measures3d.c:458,18'
          Dst:             lwgeom_clone_deep
        - Src:             'measures3d.c:459,5'
          Dst:             lwgeom_affine
        - Src:             'measures3d.c:461,14'
          Dst:             lwgeom_clone_deep
        - Src:             'measures3d.c:462,5'
          Dst:             lwgeom_affine
    - functionName:    lwgeom_mindistance3d_tolerance
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - lw_dist3d_recursive
        - lwerror
        - lwgeom_has_z
        - lwgeom_mindistance2d_tolerance
        - lwgeom_solid_contains_lwgeom
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:479,7'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:479,29'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:481,3'
          Dst:             lwnotice
        - Src:             'measures3d.c:484,10'
          Dst:             lwgeom_mindistance2d_tolerance
        - Src:             'measures3d.c:491,6'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:495,7'
          Dst:             lwgeom_solid_contains_lwgeom
        - Src:             'measures3d.c:495,49'
          Dst:             lwgeom_solid_contains_lwgeom
        - Src:             'measures3d.c:502,2'
          Dst:             lwerror
    - functionName:    lw_dist3d_recursive
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          270
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - lw_dist3d_distribute_bruteforce
        - lw_dist3d_recursive
        - lwgeom_as_lwcollection
        - lwgeom_is_collection
        - lwgeom_is_empty
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:531,6'
          Dst:             lwgeom_is_collection
        - Src:             'measures3d.c:534,8'
          Dst:             lwgeom_as_lwcollection
        - Src:             'measures3d.c:537,6'
          Dst:             lwgeom_is_collection
        - Src:             'measures3d.c:540,8'
          Dst:             lwgeom_as_lwcollection
        - Src:             'measures3d.c:546,7'
          Dst:             lwgeom_is_collection
        - Src:             'measures3d.c:551,7'
          Dst:             lwgeom_is_empty
        - Src:             'measures3d.c:554,7'
          Dst:             lwgeom_is_collection
        - Src:             'measures3d.c:557,9'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:563,8'
          Dst:             lwgeom_is_collection
        - Src:             'measures3d.c:568,8'
          Dst:             lwgeom_is_empty
        - Src:             'measures3d.c:571,8'
          Dst:             lwgeom_is_collection
        - Src:             'measures3d.c:574,10'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:581,8'
          Dst:             lwgeom_is_empty
        - Src:             'measures3d.c:581,31'
          Dst:             lwgeom_is_empty
        - Src:             'measures3d.c:584,9'
          Dst:             lw_dist3d_distribute_bruteforce
    - functionName:    lwgeom_mindistance3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_mindistance3d_tolerance
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:371,9'
          Dst:             lwgeom_mindistance3d_tolerance
    - functionName:    lwgeom_maxdistance3d_tolerance
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lw_dist3d_recursive
        - lwerror
        - lwgeom_has_z
        - lwgeom_maxdistance2d_tolerance
        - lwnotice
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:346,7'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:346,29'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:348,3'
          Dst:             lwnotice
        - Src:             'measures3d.c:350,10'
          Dst:             lwgeom_maxdistance2d_tolerance
        - Src:             'measures3d.c:357,6'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:361,2'
          Dst:             lwerror
    - functionName:    lwgeom_maxdistance3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwgeom_maxdistance3d_tolerance
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:336,9'
          Dst:             lwgeom_maxdistance3d_tolerance
    - functionName:    create_v_line
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_calculate_gbox
        - lwline_from_ptarray
        - lwpoint_make3dz
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:98,11'
          Dst:             lwgeom_calculate_gbox
        - Src:             'measures3d.c:103,16'
          Dst:             lwpoint_make3dz
        - Src:             'measures3d.c:104,16'
          Dst:             lwpoint_make3dz
        - Src:             'measures3d.c:106,19'
          Dst:             lwline_from_ptarray
    - functionName:    lw_dist3d_distancepoint
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          255
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - create_v_line
        - lw_dist2d_comp
        - lw_dist2d_distancepoint
        - lw_dist3d_recursive
        - lwcollection_construct_empty
        - lwerror
        - lwfree
        - lwgeom_has_z
        - lwnotice
        - lwpoint_make3dz
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:253,7'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:253,29'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:255,3'
          Dst:             lwnotice
        - Src:             'measures3d.c:258,8'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:258,30'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:259,11'
          Dst:             lw_dist2d_distancepoint
        - Src:             'measures3d.c:265,8'
          Dst:             lw_dist2d_comp
        - Src:             'measures3d.c:268,4'
          Dst:             lwerror
        - Src:             'measures3d.c:269,21'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:273,8'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:278,20'
          Dst:             create_v_line
        - Src:             'measures3d.c:279,9'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:282,5'
          Dst:             lwfree
        - Src:             'measures3d.c:283,5'
          Dst:             lwerror
        - Src:             'measures3d.c:284,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:286,4'
          Dst:             lwfree
        - Src:             'measures3d.c:289,8'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:294,20'
          Dst:             create_v_line
        - Src:             'measures3d.c:295,9'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:298,5'
          Dst:             lwfree
        - Src:             'measures3d.c:299,5'
          Dst:             lwerror
        - Src:             'measures3d.c:300,24'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:302,4'
          Dst:             lwfree
        - Src:             'measures3d.c:307,8'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:310,4'
          Dst:             lwerror
        - Src:             'measures3d.c:311,23'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:317,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:324,22'
          Dst:             lwpoint_make3dz
    - functionName:    lwgeom_closest_point_3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist3d_distancepoint
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:124,9'
          Dst:             lw_dist3d_distancepoint
    - functionName:    lwgeom_furthest_line_3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist3d_distanceline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:118,9'
          Dst:             lw_dist3d_distanceline
    - functionName:    lw_dist3d_distanceline
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          294
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - create_v_line
        - lw_dist2d_comp
        - lw_dist2d_distanceline
        - lw_dist3d_recursive
        - lwcollection_construct_empty
        - lwerror
        - lwfree
        - lwgeom_has_z
        - lwline_from_ptarray
        - lwnotice
        - lwpoint_make3dz
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:147,7'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:147,29'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:150,3'
          Dst:             lwnotice
        - Src:             'measures3d.c:153,8'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:153,30'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:154,11'
          Dst:             lw_dist2d_distanceline
        - Src:             'measures3d.c:160,8'
          Dst:             lw_dist2d_comp
        - Src:             'measures3d.c:163,4'
          Dst:             lwerror
        - Src:             'measures3d.c:164,23'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:167,8'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:172,20'
          Dst:             create_v_line
        - Src:             'measures3d.c:173,9'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:176,5'
          Dst:             lwfree
        - Src:             'measures3d.c:177,5'
          Dst:             lwerror
        - Src:             'measures3d.c:178,24'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:180,4'
          Dst:             lwfree
        - Src:             'measures3d.c:182,8'
          Dst:             lwgeom_has_z
        - Src:             'measures3d.c:187,20'
          Dst:             create_v_line
        - Src:             'measures3d.c:188,9'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:191,5'
          Dst:             lwfree
        - Src:             'measures3d.c:192,5'
          Dst:             lwerror
        - Src:             'measures3d.c:193,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:195,4'
          Dst:             lwfree
        - Src:             'measures3d.c:200,8'
          Dst:             lw_dist3d_recursive
        - Src:             'measures3d.c:203,4'
          Dst:             lwerror
        - Src:             'measures3d.c:204,23'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:211,22'
          Dst:             lwcollection_construct_empty
        - Src:             'measures3d.c:222,17'
          Dst:             lwpoint_make3dz
        - Src:             'measures3d.c:223,17'
          Dst:             lwpoint_make3dz
        - Src:             'measures3d.c:225,22'
          Dst:             lwline_from_ptarray
    - functionName:    lwgeom_closest_line_3d
      functionSourceFile: '/src/postgis/liblwgeom/measures3d.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lw_dist3d_distanceline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'measures3d.c:112,9'
          Dst:             lw_dist3d_distanceline
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    ptarray_scroll_in_place
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2274
      functionLinenumberEnd: 2340
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          169
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint_internal
        - lwerror
        - memcmp
        - ptarray_construct
        - ptarray_free
        - ptarray_is_closed_2d
        - ptarray_point_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:2280,9'
          Dst:             ptarray_is_closed_2d
        - Src:             'ptarray.c:2282,3'
          Dst:             lwerror
        - Src:             'ptarray.c:2286,11'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:2292,17'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2292,10'
          Dst:             memcmp
        - Src:             'ptarray.c:2301,3'
          Dst:             lwerror
        - Src:             'ptarray.c:2312,8'
          Dst:             ptarray_construct
        - Src:             'ptarray.c:2314,9'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2317,3'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2318,3'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2325,3'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2326,3'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2332,3'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2333,3'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2337,2'
          Dst:             ptarray_free
    - functionName:    ptarray_is_closed_2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint_internal
        - lwerror
        - memcmp
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:712,3'
          Dst:             lwerror
        - Src:             'ptarray.c:717,21'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:717,47'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:717,14'
          Dst:             memcmp
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    44
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    ptarray_construct
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_construct_empty
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:53,19'
          Dst:             ptarray_construct_empty
    - functionName:    ptarray_free
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lwfree
      functionUses:    35
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:332,4'
          Dst:             lwfree
        - Src:             'ptarray.c:333,3'
          Dst:             lwfree
    - functionName:    ptarray_construct_empty
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_point_size
      functionUses:    39
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:61,19'
          Dst:             lwalloc
        - Src:             'ptarray.c:65,14'
          Dst:             lwflags
        - Src:             'ptarray.c:73,50'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:73,30'
          Dst:             lwalloc
    - functionName:    ptarray_npoints_in_rect
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2251
      functionLinenumberEnd: 2261
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - gbox_contains_point2d
        - getPoint2d_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:2257,8'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:2258,8'
          Dst:             gbox_contains_point2d
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    ptarray_grid_in_place
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2171
      functionLinenumberEnd: 2246
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          475
      EdgeCount:       88
      CyclomaticComplexity: 25
      functionsReached:
        - getPoint_internal
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:2182,19'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:2235,23'
          Dst:             getPoint_internal
    - functionName:    ptarray_startpoint
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2156
      functionLinenumberEnd: 2157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint4d_p
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:2157,9'
          Dst:             getPoint4d_p
    - functionName:    ptarray_scale
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2138
      functionLinenumberEnd: 2152
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          71
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - ptarray_set_point4d
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:2144,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:2149,3'
          Dst:             ptarray_set_point4d
    - functionName:    ptarray_affine
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1970
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          202
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint_internal
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1975,31'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:1988,30'
          Dst:             getPoint_internal
    - functionName:    ptarray_length
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1940
      functionLinenumberEnd: 1961
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          112
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint3dz_p
        - ptarray_length_2d
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1949,42'
          Dst:             ptarray_length_2d
        - Src:             'ptarray.c:1951,2'
          Dst:             getPoint3dz_p
        - Src:             'ptarray.c:1954,3'
          Dst:             getPoint3dz_p
    - functionName:    ptarray_length_2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1912
      functionLinenumberEnd: 1932
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          97
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1920,8'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1924,8'
          Dst:             getPoint2d_cp
    - functionName:    ptarray_arc_length_2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1885
      functionLinenumberEnd: 1904
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint2d_cp
        - lw_arc_length
        - lwerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1893,3'
          Dst:             lwerror
        - Src:             'ptarray.c:1895,7'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1899,8'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1900,8'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1901,11'
          Dst:             lw_arc_length
    - functionName:    ptarray_dp_findsplit_in_place
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1682
      functionLinenumberEnd: 1742
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          248
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - distance2d_sqr_pt_pt
        - getPoint2d_cp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1687,21'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1688,21'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1690,6'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'ptarray.c:1695,24'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1696,26'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'ptarray.c:1715,22'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1723,19'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'ptarray.c:1727,19'
          Dst:             distance2d_sqr_pt_pt
    - functionName:    distance2d_sqr_pt_pt
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_simplify_in_place_tolerance0
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1747
      functionLinenumberEnd: 1789
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          229
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - getPoint2d_cp
        - p2d_same
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1750,27'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1751,25'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:1755,28'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1756,28'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1767,7'
          Dst:             p2d_same
    - functionName:    ptarray_simplify_in_place
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1793
      functionLinenumberEnd: 1874
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          311
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - lwalloc
        - lwfree
        - ptarray_dp_findsplit_in_place
        - ptarray_point_size
        - ptarray_simplify_in_place_tolerance0
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1800,3'
          Dst:             ptarray_simplify_in_place_tolerance0
        - Src:             'ptarray.c:1806,25'
          Dst:             lwalloc
        - Src:             'ptarray.c:1816,29'
          Dst:             lwalloc
        - Src:             'ptarray.c:1829,20'
          Dst:             ptarray_dp_findsplit_in_place
        - Src:             'ptarray.c:1846,25'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:1872,2'
          Dst:             lwfree
        - Src:             'ptarray.c:1873,2'
          Dst:             lwfree
    - functionName:    ptarray_remove_repeated_points_in_place
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1611
      functionLinenumberEnd: 1674
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          201
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - distance2d_sqr_pt_pt
        - getPoint2d_cp
        - memcmp
        - ptarray_point_size
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1618,19'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:1625,9'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1632,8'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1640,11'
          Dst:             distance2d_sqr_pt_pt
        - Src:             'ptarray.c:1650,9'
          Dst:             memcmp
    - functionName:    ptarray_remove_repeated_points_minpoints
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1599
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_clone_deep
        - ptarray_remove_repeated_points_in_place
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1597,20'
          Dst:             ptarray_clone_deep
        - Src:             'ptarray.c:1598,2'
          Dst:             ptarray_remove_repeated_points_in_place
    - functionName:    ptarray_clone_deep
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          83
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwalloc
        - ptarray_point_size
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:643,20'
          Dst:             lwalloc
        - Src:             'ptarray.c:660,31'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:661,31'
          Dst:             lwalloc
    - functionName:    ptarray_remove_repeated_points
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1604
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_remove_repeated_points_minpoints
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1605,9'
          Dst:             ptarray_remove_repeated_points_minpoints
    - functionName:    ptarray_longitude_shift
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1574
      functionLinenumberEnd: 1585
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint_internal
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1580,14'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:1583,10'
          Dst:             getPoint_internal
    - functionName:    ptarray_locate_point
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1455
      functionLinenumberEnd: 1561
      functionDepth:   0
      returnType:      double
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          296
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - closest_point_on_segment
        - distance2d_pt_pt
        - distance2d_sqr_pt_seg
        - getPoint2d_cp
        - getPoint4d_p
        - p2d_same
        - ptarray_length_2d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1474,4'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:1476,40'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1476,19'
          Dst:             distance2d_pt_pt
        - Src:             'ptarray.c:1481,10'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1486,9'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1487,14'
          Dst:             distance2d_sqr_pt_seg
        - Src:             'ptarray.c:1513,2'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:1514,2'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:1515,2'
          Dst:             closest_point_on_segment
        - Src:             'ptarray.c:1524,35'
          Dst:             p2d_same
        - Src:             'ptarray.c:1531,9'
          Dst:             ptarray_length_2d
        - Src:             'ptarray.c:1540,10'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1543,9'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1544,11'
          Dst:             distance2d_pt_pt
        - Src:             'ptarray.c:1549,8'
          Dst:             distance2d_pt_pt
    - functionName:    closest_point_on_segment
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1385
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          194
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_closest_vertex_2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1422
      functionLinenumberEnd: 1446
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - distance2d_sqr_pt_pt
        - getPoint2d_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1431,7'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1432,14'
          Dst:             distance2d_sqr_pt_pt
    - functionName:    ptarray_closest_segment_2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1416
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          101
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - distance2d_sqr_pt_seg
        - getPoint2d_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1390,25'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1398,9'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1399,14'
          Dst:             distance2d_sqr_pt_seg
    - functionName:    ptarray_substring
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          251
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - distance2d_pt_pt
        - getPoint4d_p
        - interpolate_point4d
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_length_2d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1162,8'
          Dst:             ptarray_construct_empty
        - Src:             'ptarray.c:1165,11'
          Dst:             ptarray_length_2d
        - Src:             'ptarray.c:1180,2'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:1186,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:1194,13'
          Dst:             distance2d_pt_pt
        - Src:             'ptarray.c:1212,5'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:1225,5'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:1251,5'
          Dst:             interpolate_point4d
        - Src:             'ptarray.c:1253,5'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:1276,5'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:1289,5'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:1300,5'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:1314,5'
          Dst:             interpolate_point4d
        - Src:             'ptarray.c:1316,5'
          Dst:             ptarray_append_point
    - functionName:    ptarray_append_point
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          159
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - getPoint4d_p
        - lwerror
        - ptarray_insert_point
      functionUses:    72
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:152,3'
          Dst:             lwerror
        - Src:             'ptarray.c:160,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:173,9'
          Dst:             ptarray_insert_point
    - functionName:    ptarray_insert_point
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          211
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - getPoint_internal
        - lwalloc
        - lwerror
        - lwrealloc
        - ptarray_point_size
        - ptarray_set_point4d
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:89,22'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:95,3'
          Dst:             lwerror
        - Src:             'ptarray.c:102,3'
          Dst:             lwerror
        - Src:             'ptarray.c:111,38'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:111,30'
          Dst:             lwalloc
        - Src:             'ptarray.c:117,3'
          Dst:             lwerror
        - Src:             'ptarray.c:125,66'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:125,30'
          Dst:             lwrealloc
        - Src:             'ptarray.c:132,11'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:132,43'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:140,2'
          Dst:             ptarray_set_point4d
    - functionName:    ptarray_force_dims
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1143
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint4d_p
        - ptarray_append_point
        - ptarray_construct_empty
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1131,23'
          Dst:             ptarray_construct_empty
        - Src:             'ptarray.c:1135,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:1140,3'
          Dst:             ptarray_append_point
    - functionName:    ptarray_isccw
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1119
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_has_orientation
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1120,9'
          Dst:             ptarray_has_orientation
    - functionName:    ptarray_has_orientation
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1116
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_signed_area
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1112,6'
          Dst:             ptarray_signed_area
    - functionName:    ptarray_signed_area
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1107
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          107
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint2d_cp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1091,7'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1092,7'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1096,8'
          Dst:             getPoint2d_cp
    - functionName:    ptarrayarc_contains_point
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1060
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - lwerror
        - ptarray_is_closed_2d
        - ptarrayarc_raycast_intersections
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:1063,7'
          Dst:             ptarray_is_closed_2d
        - Src:             'ptarray.c:1064,3'
          Dst:             lwerror
        - Src:             'ptarray.c:1066,18'
          Dst:             ptarrayarc_raycast_intersections
    - functionName:    ptarrayarc_raycast_intersections
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          288
      EdgeCount:       64
      CyclomaticComplexity: 19
      functionsReached:
        - circle_raycast_intersections
        - distance2d_pt_pt
        - getPoint2d_cp
        - lw_arc_calculate_gbox_cartesian_2d
        - lw_arc_center
        - lw_arc_is_pt
        - lw_pt_in_arc
        - lwerror
        - p2d_same
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:887,3'
          Dst:             lwerror
        - Src:             'ptarray.c:890,3'
          Dst:             lwerror
        - Src:             'ptarray.c:895,23'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:896,23'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:897,23'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:903,7'
          Dst:             lw_arc_is_pt
        - Src:             'ptarray.c:907,7'
          Dst:             p2d_same
        - Src:             'ptarray.c:907,26'
          Dst:             p2d_same
        - Src:             'ptarray.c:907,45'
          Dst:             p2d_same
        - Src:             'ptarray.c:914,12'
          Dst:             lw_arc_center
        - Src:             'ptarray.c:916,7'
          Dst:             distance2d_pt_pt
        - Src:             'ptarray.c:917,31'
          Dst:             lw_pt_in_arc
        - Src:             'ptarray.c:926,3'
          Dst:             lw_arc_calculate_gbox_cartesian_2d
        - Src:             'ptarray.c:933,17'
          Dst:             circle_raycast_intersections
        - Src:             'ptarray.c:947,21'
          Dst:             lw_pt_in_arc
        - Src:             'ptarray.c:950,21'
          Dst:             lw_pt_in_arc
    - functionName:    circle_raycast_intersections
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - double
        - double
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          95
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_raycast_intersections
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          194
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - getPoint2d_cp
        - lw_pt_on_segment
        - lwerror
        - p2d_same
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:764,3'
          Dst:             lwerror
        - Src:             'ptarray.c:773,23'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:774,23'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:777,7'
          Dst:             p2d_same
        - Src:             'ptarray.c:781,7'
          Dst:             lw_pt_on_segment
    - functionName:    ptarray_contains_point_partial
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 965
      functionLinenumberEnd: 1047
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          340
      EdgeCount:       81
      CyclomaticComplexity: 23
      functionsReached:
        - getPoint2d_cp
        - lw_pt_in_seg
        - lw_segment_side
        - lwerror
        - p2d_same
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:973,3'
          Dst:             lwerror
        - Src:             'ptarray.c:975,9'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:976,9'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:977,25'
          Dst:             p2d_same
        - Src:             'ptarray.c:978,3'
          Dst:             lwerror
        - Src:             'ptarray.c:982,10'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:1001,10'
          Dst:             lw_segment_side
        - Src:             'ptarray.c:1007,23'
          Dst:             lw_pt_in_seg
    - functionName:    ptarray_contains_point
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_contains_point_partial
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:756,9'
          Dst:             ptarray_contains_point_partial
    - functionName:    ptarray_is_closed_z
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ptarray_is_closed_2d
        - ptarray_is_closed_3d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:737,10'
          Dst:             ptarray_is_closed_3d
        - Src:             'ptarray.c:739,10'
          Dst:             ptarray_is_closed_2d
    - functionName:    ptarray_is_closed_3d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint_internal
        - lwerror
        - memcmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:725,3'
          Dst:             lwerror
        - Src:             'ptarray.c:730,21'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:730,47'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:730,14'
          Dst:             memcmp
    - functionName:    ptarray_is_closed
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint_internal
        - lwerror
        - memcmp
        - ptarray_point_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:698,3'
          Dst:             lwerror
        - Src:             'ptarray.c:703,21'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:703,47'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:703,85'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:703,14'
          Dst:             memcmp
    - functionName:    ptarray_clone
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:674,20'
          Dst:             lwalloc
    - functionName:    ptarray_merge
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          110
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint_internal
        - lwerror
        - ptarray_construct
        - ptarray_free
        - ptarray_point_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:613,18'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:616,3'
          Dst:             lwerror
        - Src:             'ptarray.c:618,7'
          Dst:             ptarray_construct
        - Src:             'ptarray.c:622,18'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:623,18'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:626,18'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:627,18'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:630,2'
          Dst:             ptarray_free
        - Src:             'ptarray.c:631,2'
          Dst:             ptarray_free
    - functionName:    ptarray_removePoint
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          94
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint_internal
        - ptarray_construct
        - ptarray_point_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:583,18'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:590,8'
          Dst:             ptarray_construct
        - Src:             'ptarray.c:596,10'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:596,37'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:602,10'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:602,41'
          Dst:             getPoint_internal
    - functionName:    ptarray_addPoint
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          153
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint_internal
        - lwerror
        - ptarray_construct
        - ptarray_point_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:534,18'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:540,3'
          Dst:             lwerror
        - Src:             'ptarray.c:546,3'
          Dst:             lwerror
        - Src:             'ptarray.c:558,8'
          Dst:             ptarray_construct
        - Src:             'ptarray.c:564,10'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:564,37'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:567,9'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:571,10'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:572,10'
          Dst:             getPoint_internal
    - functionName:    ptarray_same2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          103
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint_internal
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:521,15'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:521,42'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:521,8'
          Dst:             memcmp
    - functionName:    ptarray_same
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint_internal
        - memcmp
        - ptarray_point_size
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:495,11'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:500,15'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:500,42'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:500,8'
          Dst:             memcmp
    - functionName:    ptarray_segmentize2d
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          287
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - distance2d_pt_pt
        - getPoint4d_p
        - lwnotice
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:426,8'
          Dst:             ptarray_construct_empty
        - Src:             'ptarray.c:429,2'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:430,2'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:447,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:449,13'
          Dst:             distance2d_pt_pt
        - Src:             'ptarray.c:456,4'
          Dst:             lwnotice
        - Src:             'ptarray.c:458,4'
          Dst:             ptarray_free
        - Src:             'ptarray.c:471,4'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:472,4'
          Dst:             lwnotice
        - Src:             'ptarray.c:472,4'
          Dst:             ptarray_free
        - Src:             'ptarray.c:475,3'
          Dst:             ptarray_append_point
        - Src:             'ptarray.c:477,3'
          Dst:             lwnotice
        - Src:             'ptarray.c:477,3'
          Dst:             ptarray_free
    - functionName:    ptarray_swap_ordinates
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          66
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - ptarray_set_point4d
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:397,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:401,3'
          Dst:             ptarray_set_point4d
    - functionName:    ptarray_flip_coordinates
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          53
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - ptarray_set_point4d
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:376,3'
          Dst:             getPoint4d_p
        - Src:             'ptarray.c:380,3'
          Dst:             ptarray_set_point4d
    - functionName:    ptarray_reverse_in_place
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          127
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_construct_copy_data
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - char
        - char
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwalloc
        - lwflags
        - ptarray_point_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:307,19'
          Dst:             lwalloc
        - Src:             'ptarray.c:309,14'
          Dst:             lwflags
        - Src:             'ptarray.c:315,38'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:315,30'
          Dst:             lwalloc
        - Src:             'ptarray.c:316,44'
          Dst:             ptarray_point_size
    - functionName:    ptarray_construct_reference_data
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - char
        - char
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwalloc
        - lwflags
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:293,19'
          Dst:             lwalloc
        - Src:             'ptarray.c:295,14'
          Dst:             lwflags
    - functionName:    ptarray_remove_point
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint_internal
        - lwerror
        - ptarray_point_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:264,3'
          Dst:             lwerror
        - Src:             'ptarray.c:271,3'
          Dst:             lwerror
        - Src:             'ptarray.c:277,11'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:278,4'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:279,4'
          Dst:             ptarray_point_size
    - functionName:    ptarray_append_ptarray
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          280
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - distance2d_pt_pt
        - getPoint2d_cp
        - getPoint_internal
        - lwalloc
        - lwerror
        - lwrealloc
        - p2d_same
        - ptarray_point_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'ptarray.c:187,3'
          Dst:             lwerror
        - Src:             'ptarray.c:197,3'
          Dst:             lwerror
        - Src:             'ptarray.c:203,3'
          Dst:             lwerror
        - Src:             'ptarray.c:207,11'
          Dst:             ptarray_point_size
        - Src:             'ptarray.c:213,10'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:214,10'
          Dst:             getPoint2d_cp
        - Src:             'ptarray.c:217,7'
          Dst:             p2d_same
        - Src:             'ptarray.c:222,34'
          Dst:             distance2d_pt_pt
        - Src:             'ptarray.c:224,4'
          Dst:             lwerror
        - Src:             'ptarray.c:237,32'
          Dst:             lwrealloc
        - Src:             'ptarray.c:242,32'
          Dst:             lwalloc
        - Src:             'ptarray.c:246,9'
          Dst:             getPoint_internal
        - Src:             'ptarray.c:247,9'
          Dst:             getPoint_internal
    - functionName:    ptarray_has_m
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_has_z
      functionSourceFile: '/src/postgis/liblwgeom/ptarray.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_register_interrupt_callback
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_cancel_interrupt
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_request_interrupt
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 658
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    interpolate_point4d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          72
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    deparse_hex
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          32
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_hex
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         61
      ICount:          259
      EdgeCount:       119
      CyclomaticComplexity: 60
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwgeom_api.c:484,2'
          Branch Sides:    []
        - Branch String:   'lwgeom_api.c:541,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ptarray_point_size
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    printPA
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 439
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          186
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - getPoint4d_p
        - lwnotice
        - ptarray_point_size
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:446,3'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:452,2'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:454,88'
          Dst:             ptarray_point_size
        - Src:             'lwgeom_api.c:453,2'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:455,2'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:459,3'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_api.c:461,4'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:463,4'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:465,4'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:468,2'
          Dst:             lwnotice
    - functionName:    getPoint4d_p
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          123
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint_internal
        - lwerror
      functionUses:    101
      BranchProfiles:
        - Branch String:   'lwgeom_api.c:148,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_api.c:130,3'
          Dst:             lwerror
        - Src:             'lwgeom_api.c:136,3'
          Dst:             lwerror
        - Src:             'lwgeom_api.c:143,6'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:172,3'
          Dst:             lwerror
    - functionName:    getPoint_internal
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ptarray_point_size
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:84,9'
          Dst:             ptarray_point_size
    - functionName:    printBOX3D
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lwnotice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:434,2'
          Dst:             lwnotice
    - functionName:    ptarray_copy_point
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - getPoint_internal
        - lwerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lwgeom_api.c:395,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_api.c:399,33'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:400,31'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:406,33'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:407,31'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:413,33'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:414,31'
          Dst:             getPoint_internal
        - Src:             'lwgeom_api.c:420,4'
          Dst:             lwerror
    - functionName:    ptarray_set_point4d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached:
        - getPoint_internal
      functionUses:    23
      BranchProfiles:
        - Branch String:   'lwgeom_api.c:372,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwgeom_api.c:371,8'
          Dst:             getPoint_internal
    - functionName:    getPoint2d_p
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint_internal
        - lwerror
        - lwnotice
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:344,3'
          Dst:             lwerror
        - Src:             'lwgeom_api.c:350,3'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:355,16'
          Dst:             getPoint_internal
    - functionName:    getPoint2d_cp
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint_internal
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:99,26'
          Dst:             getPoint_internal
    - functionName:    getPoint2d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint2d_cp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:329,11'
          Dst:             getPoint2d_cp
    - functionName:    getPoint3dm_p
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          104
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - getPoint_internal
        - lwerror
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:273,3'
          Dst:             lwerror
        - Src:             'lwgeom_api.c:279,3'
          Dst:             lwerror
        - Src:             'lwgeom_api.c:284,8'
          Dst:             getPoint_internal
    - functionName:    getPoint3dm
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint3dm_p
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:202,2'
          Dst:             getPoint3dm_p
    - functionName:    getPoint3dz_p
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint_internal
        - lwerror
        - lwnotice
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:219,3'
          Dst:             lwerror
        - Src:             'lwgeom_api.c:226,3'
          Dst:             lwnotice
        - Src:             'lwgeom_api.c:234,6'
          Dst:             getPoint_internal
    - functionName:    getPoint3dz
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getPoint3dz_p
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:188,2'
          Dst:             getPoint3dz_p
    - functionName:    getPoint4d
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getPoint4d_p
        - lwerror
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:108,6'
          Dst:             getPoint4d_p
        - Src:             'lwgeom_api.c:109,3'
          Dst:             lwerror
    - functionName:    next_float_up
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      float
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - nextafterf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:84,9'
          Dst:             nextafterf
    - functionName:    nextafterf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      float
      argCount:        2
      argTypes:
        - float
        - float
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    next_float_down
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      float
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - nextafterf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:63,9'
          Dst:             nextafterf
    - functionName:    lwgeom_version
      functionSourceFile: '/src/postgis/liblwgeom/lwgeom_api.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwgeom_api.c:43,5'
          Dst:             snprintf
    - functionName:    lwnurbscurve_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_clamp_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - double
        - double
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          490
      EdgeCount:       101
      CyclomaticComplexity: 27
      functionsReached:
        - getPoint4d_p
        - lwalloc
        - lwfree
        - lwnotice
        - lwpoint_get_ordinate
        - point_interpolate
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:442,6'
          Dst:             lwalloc
        - Src:             'lwlinearreferencing.c:445,8'
          Dst:             ptarray_construct_empty
        - Src:             'lwlinearreferencing.c:448,2'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:449,9'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:454,3'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:459,3'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:460,10'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:465,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:473,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:474,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:475,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:479,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:480,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:481,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:482,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:486,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:487,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:491,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:492,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:496,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:497,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:498,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:499,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:503,4'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:504,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:505,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:510,3'
          Dst:             lwnotice
        - Src:             'lwlinearreferencing.c:510,3'
          Dst:             ptarray_free
        - Src:             'lwlinearreferencing.c:515,3'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:516,3'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:518,2'
          Dst:             lwfree
    - functionName:    lwpoint_get_ordinate
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - lwerror
      functionUses:    9
      BranchProfiles:
        - Branch String:   'lwlinearreferencing.c:263,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwlinearreferencing.c:259,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:274,2'
          Dst:             lwerror
    - functionName:    point_interpolate
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - char
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          170
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - lwpoint_get_ordinate
        - lwpoint_set_ordinate
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:325,20'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:326,20'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:344,4'
          Dst:             lwpoint_set_ordinate
        - Src:             'lwlinearreferencing.c:348,15'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:349,15'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:351,4'
          Dst:             lwpoint_set_ordinate
    - functionName:    lwpoint_set_ordinate
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - lwerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lwlinearreferencing.c:291,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwlinearreferencing.c:287,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:306,2'
          Dst:             lwerror
    - functionName:    segment_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          211
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - p4d_same
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:47,7'
          Dst:             p4d_same
    - functionName:    ptarray_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - getPoint4d_p
        - ptarray_append_point
        - ptarray_construct_empty
        - ptarray_has_m
        - ptarray_has_z
        - segment_locate_along
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:91,3'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:92,3'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:95,7'
          Dst:             segment_locate_along
        - Src:             'lwlinearreferencing.c:100,34'
          Dst:             ptarray_has_z
        - Src:             'lwlinearreferencing.c:100,53'
          Dst:             ptarray_has_m
        - Src:             'lwlinearreferencing.c:100,10'
          Dst:             ptarray_construct_empty
        - Src:             'lwlinearreferencing.c:103,3'
          Dst:             ptarray_append_point
    - functionName:    lwgeom_cpa_within
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1386
      functionLinenumberEnd: 1540
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          412
      EdgeCount:       70
      CyclomaticComplexity: 21
      functionsReached:
        - compare_double
        - distance3d_pt_pt
        - lwalloc
        - lwerror
        - lwfree
        - lwgeom_as_lwline
        - lwgeom_calculate_gbox
        - lwgeom_has_m
        - lwnotice
        - ptarray_collect_mvals
        - ptarray_locate_along_linear
        - qsort
        - segments_tcpa
        - uniq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:1396,7'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:1396,28'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:1398,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1402,7'
          Dst:             lwgeom_as_lwline
        - Src:             'lwlinearreferencing.c:1403,7'
          Dst:             lwgeom_as_lwline
        - Src:             'lwlinearreferencing.c:1407,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1414,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1421,2'
          Dst:             lwgeom_calculate_gbox
        - Src:             'lwlinearreferencing.c:1422,2'
          Dst:             lwgeom_calculate_gbox
        - Src:             'lwlinearreferencing.c:1442,10'
          Dst:             lwalloc
        - Src:             'lwlinearreferencing.c:1445,11'
          Dst:             ptarray_collect_mvals
        - Src:             'lwlinearreferencing.c:1446,12'
          Dst:             ptarray_collect_mvals
        - Src:             'lwlinearreferencing.c:1449,2'
          Dst:             qsort
        - Src:             'lwlinearreferencing.c:1449,2'
          Dst:             compare_double
        - Src:             'lwlinearreferencing.c:1452,11'
          Dst:             uniq
        - Src:             'lwlinearreferencing.c:1460,13'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1462,4'
          Dst:             lwnotice
        - Src:             'lwlinearreferencing.c:1465,13'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1467,4'
          Dst:             lwnotice
        - Src:             'lwlinearreferencing.c:1470,7'
          Dst:             distance3d_pt_pt
        - Src:             'lwlinearreferencing.c:1472,3'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:1493,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1498,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1503,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1508,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1516,7'
          Dst:             segments_tcpa
        - Src:             'lwlinearreferencing.c:1537,2'
          Dst:             lwfree
    - functionName:    ptarray_collect_mvals
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1149
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint4d_p
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:1145,3'
          Dst:             getPoint4d_p
    - functionName:    compare_double
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uniq
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ptarray_locate_along_linear
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1198
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getPoint4d_p
        - segment_locate_along
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:1203,2'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:1206,3'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:1208,7'
          Dst:             segment_locate_along
    - functionName:    segments_tcpa
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1056
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      double
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          249
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwgeom_tcpa
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1219
      functionLinenumberEnd: 1382
      functionDepth:   0
      returnType:      double
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          432
      EdgeCount:       74
      CyclomaticComplexity: 22
      functionsReached:
        - compare_double
        - distance3d_pt_pt
        - lwalloc
        - lwerror
        - lwfree
        - lwgeom_as_lwline
        - lwgeom_calculate_gbox
        - lwgeom_has_m
        - ptarray_collect_mvals
        - ptarray_locate_along_linear
        - qsort
        - segments_tcpa
        - uniq
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:1229,7'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:1229,28'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:1231,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1235,7'
          Dst:             lwgeom_as_lwline
        - Src:             'lwlinearreferencing.c:1236,7'
          Dst:             lwgeom_as_lwline
        - Src:             'lwlinearreferencing.c:1240,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1246,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1253,2'
          Dst:             lwgeom_calculate_gbox
        - Src:             'lwlinearreferencing.c:1254,2'
          Dst:             lwgeom_calculate_gbox
        - Src:             'lwlinearreferencing.c:1276,10'
          Dst:             lwalloc
        - Src:             'lwlinearreferencing.c:1279,11'
          Dst:             ptarray_collect_mvals
        - Src:             'lwlinearreferencing.c:1280,12'
          Dst:             ptarray_collect_mvals
        - Src:             'lwlinearreferencing.c:1283,2'
          Dst:             qsort
        - Src:             'lwlinearreferencing.c:1283,2'
          Dst:             compare_double
        - Src:             'lwlinearreferencing.c:1286,11'
          Dst:             uniq
        - Src:             'lwlinearreferencing.c:1297,15'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1299,6'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:1300,6'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1303,15'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1305,6'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:1306,6'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:1309,16'
          Dst:             distance3d_pt_pt
        - Src:             'lwlinearreferencing.c:1311,4'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:1332,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1337,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1342,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1347,9'
          Dst:             ptarray_locate_along_linear
        - Src:             'lwlinearreferencing.c:1352,7'
          Dst:             segments_tcpa
        - Src:             'lwlinearreferencing.c:1373,2'
          Dst:             lwfree
    - functionName:    lwgeom_interpolate_point_3d
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          328
      EdgeCount:       50
      CyclomaticComplexity: 12
      functionsReached:
        - getPoint4d_p
        - lwerror
        - lwgeom_as_lwline
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwpoint_getPoint4d_p
        - lwpoint_is_empty
        - lwtype_name
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwlinearreferencing.c:970,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwlinearreferencing.c:959,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:961,7'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:962,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:964,7'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:965,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:967,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwlinearreferencing.c:967,31'
          Dst:             lwpoint_is_empty
        - Src:             'lwlinearreferencing.c:968,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:974,20'
          Dst:             lwgeom_as_lwline
        - Src:             'lwlinearreferencing.c:977,3'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwlinearreferencing.c:981,4'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:990,4'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:991,4'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:1025,59'
          Dst:             lwtype_name
        - Src:             'lwlinearreferencing.c:1025,3'
          Dst:             lwerror
    - functionName:    lwgeom_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          113
      EdgeCount:       43
      CyclomaticComplexity: 23
      functionsReached:
        - lwcircstring_is_empty
        - lwcollection_is_empty
        - lwline_is_empty
        - lwnurbscurve_is_empty
        - lwpoint_is_empty
        - lwpoly_is_empty
        - lwtriangle_is_empty
      functionUses:    5
      BranchProfiles:
        - Branch String:   './lwinline.h:245,2'
          Branch Sides:    []
      Callsites:
        - Src:             './lwinline.h:248,10'
          Dst:             lwpoint_is_empty
        - Src:             './lwinline.h:251,10'
          Dst:             lwline_is_empty
        - Src:             './lwinline.h:254,10'
          Dst:             lwcircstring_is_empty
        - Src:             './lwinline.h:257,10'
          Dst:             lwpoly_is_empty
        - Src:             './lwinline.h:260,10'
          Dst:             lwtriangle_is_empty
        - Src:             './lwinline.h:272,10'
          Dst:             lwcollection_is_empty
        - Src:             './lwinline.h:275,10'
          Dst:             lwnurbscurve_is_empty
    - functionName:    lwpoint_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwline_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcircstring_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwpoly_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwtriangle_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwcollection_is_empty
      functionSourceFile: '/src/postgis/liblwgeom/./lwinline.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwgeom_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './lwinline.h:198,8'
          Dst:             lwgeom_is_empty
    - functionName:    lwgeom_interpolate_point
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - lwerror
        - lwgeom_as_lwline
        - lwgeom_has_m
        - lwgeom_is_empty
        - lwpoint_getPoint4d_p
        - lwpoint_is_empty
        - lwtype_name
        - ptarray_locate_point
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwlinearreferencing.c:934,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwlinearreferencing.c:926,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:928,7'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:929,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:931,6'
          Dst:             lwgeom_is_empty
        - Src:             'lwlinearreferencing.c:931,31'
          Dst:             lwpoint_is_empty
        - Src:             'lwlinearreferencing.c:932,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:938,20'
          Dst:             lwgeom_as_lwline
        - Src:             'lwlinearreferencing.c:939,3'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwlinearreferencing.c:940,9'
          Dst:             ptarray_locate_point
        - Src:             'lwlinearreferencing.c:945,59'
          Dst:             lwtype_name
        - Src:             'lwlinearreferencing.c:945,3'
          Dst:             lwerror
    - functionName:    lwgeom_locate_between
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
        - lwgeom_clip_to_ordinate_range
        - lwgeom_has_m
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:913,7'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:914,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:916,9'
          Dst:             lwgeom_clip_to_ordinate_range
    - functionName:    lwgeom_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - double
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          273
      EdgeCount:       52
      CyclomaticComplexity: 10
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_as_lwgeom
        - lwcollection_clip_to_ordinate_range
        - lwcollection_construct_empty
        - lwerror
        - lwgeom_is_empty
        - lwgeom_offsetcurve
        - lwline_clip_to_ordinate_range
        - lwmpoint_clip_to_ordinate_range
        - lwnotice
        - lwpoint_clip_to_ordinate_range
        - lwpoly_clip_to_ordinate_range
        - lwtriangle_clip_to_ordinate_range
        - lwtype_name
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lwlinearreferencing.c:840,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwlinearreferencing.c:838,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:843,13'
          Dst:             lwline_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:846,13'
          Dst:             lwmpoint_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:849,13'
          Dst:             lwpoint_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:852,13'
          Dst:             lwpoly_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:855,13'
          Dst:             lwtriangle_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:862,13'
          Dst:             lwcollection_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:865,59'
          Dst:             lwtype_name
        - Src:             'lwlinearreferencing.c:865,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:871,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:874,44'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwlinearreferencing.c:874,28'
          Dst:             lwgeom_is_empty
        - Src:             'lwlinearreferencing.c:879,15'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:887,4'
          Dst:             lwnotice
        - Src:             'lwlinearreferencing.c:893,20'
          Dst:             lwgeom_offsetcurve
        - Src:             'lwlinearreferencing.c:896,5'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:898,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:903,5'
          Dst:             lwtype_name
        - Src:             'lwlinearreferencing.c:902,4'
          Dst:             lwerror
    - functionName:    lwline_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         118
      ICount:          720
      EdgeCount:       159
      CyclomaticComplexity: 43
      functionsReached:
        - getPoint4d_p
        - lwalloc
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwerror
        - lwfree
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_refresh_bbox
        - lwline_as_lwgeom
        - lwline_construct
        - lwpoint_as_lwgeom
        - lwpoint_construct
        - lwpoint_get_ordinate
        - point_interpolate
        - ptarray_append_point
        - ptarray_construct
        - ptarray_construct_empty
        - ptarray_free
        - ptarray_set_point4d
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:542,22'
          Dst:             lwline_as_lwgeom
        - Src:             'lwlinearreferencing.c:542,9'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:543,22'
          Dst:             lwline_as_lwgeom
        - Src:             'lwlinearreferencing.c:543,9'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:549,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:554,6'
          Dst:             lwalloc
        - Src:             'lwlinearreferencing.c:555,6'
          Dst:             lwalloc
        - Src:             'lwlinearreferencing.c:556,6'
          Dst:             lwalloc
        - Src:             'lwlinearreferencing.c:559,15'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:571,3'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:572,22'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:582,10'
          Dst:             ptarray_construct_empty
        - Src:             'lwlinearreferencing.c:597,6'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:598,6'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:602,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:617,5'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:618,5'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:631,6'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:632,6'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:639,10'
          Dst:             ptarray_construct
        - Src:             'lwlinearreferencing.c:641,5'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:642,5'
          Dst:             ptarray_set_point4d
        - Src:             'lwlinearreferencing.c:644,5'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:645,5'
          Dst:             ptarray_set_point4d
        - Src:             'lwlinearreferencing.c:651,10'
          Dst:             ptarray_construct
        - Src:             'lwlinearreferencing.c:653,5'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:654,5'
          Dst:             ptarray_set_point4d
        - Src:             'lwlinearreferencing.c:656,5'
          Dst:             point_interpolate
        - Src:             'lwlinearreferencing.c:657,5'
          Dst:             ptarray_set_point4d
        - Src:             'lwlinearreferencing.c:666,24'
          Dst:             lwpoint_construct
        - Src:             'lwlinearreferencing.c:668,55'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:668,19'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:672,22'
          Dst:             lwline_construct
        - Src:             'lwlinearreferencing.c:673,55'
          Dst:             lwline_as_lwgeom
        - Src:             'lwlinearreferencing.c:673,19'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:688,22'
          Dst:             lwpoint_construct
        - Src:             'lwlinearreferencing.c:690,53'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:690,17'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:694,20'
          Dst:             lwline_construct
        - Src:             'lwlinearreferencing.c:695,53'
          Dst:             lwline_as_lwgeom
        - Src:             'lwlinearreferencing.c:695,17'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:698,4'
          Dst:             ptarray_free
        - Src:             'lwlinearreferencing.c:701,2'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:702,2'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:703,2'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:706,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwmpoint_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_refresh_bbox
        - lwmpoint_as_lwgeom
        - lwpoint_as_lwgeom
        - lwpoint_clone
        - lwpoint_getPoint4d_p
        - lwpoint_get_ordinate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:399,22'
          Dst:             lwmpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:399,9'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:400,22'
          Dst:             lwmpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:400,9'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:403,15'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:411,3'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwlinearreferencing.c:412,20'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:416,19'
          Dst:             lwpoint_clone
        - Src:             'lwlinearreferencing.c:417,40'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:417,4'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:423,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwpoint_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          76
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwgeom_has_m
        - lwgeom_has_z
        - lwpoint_as_lwgeom
        - lwpoint_clone
        - lwpoint_getPoint4d_p
        - lwpoint_get_ordinate
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:370,22'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:370,9'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:371,22'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:371,9'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:374,15'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:377,2'
          Dst:             lwpoint_getPoint4d_p
        - Src:             'lwlinearreferencing.c:378,19'
          Dst:             lwpoint_get_ordinate
        - Src:             'lwlinearreferencing.c:381,18'
          Dst:             lwpoint_clone
        - Src:             'lwlinearreferencing.c:382,39'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:382,3'
          Dst:             lwcollection_add_lwgeom
    - functionName:    lwpoly_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          147
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwpoly_add_ring
        - lwpoly_construct_empty
        - lwpoly_free
        - ptarray_clamp_to_ordinate_range
        - ptarray_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:719,21'
          Dst:             lwpoly_construct_empty
        - Src:             'lwlinearreferencing.c:720,29'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:725,20'
          Dst:             ptarray_clamp_to_ordinate_range
        - Src:             'lwlinearreferencing.c:731,4'
          Dst:             lwpoly_add_ring
        - Src:             'lwlinearreferencing.c:734,4'
          Dst:             ptarray_free
        - Src:             'lwlinearreferencing.c:740,16'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:742,3'
          Dst:             lwpoly_free
    - functionName:    lwtriangle_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          136
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - getPoint4d
        - getPoint4d_p
        - lwcollection_add_lwgeom
        - lwcollection_construct_empty
        - lwtriangle_construct
        - ptarray_append_point
        - ptarray_clamp_to_ordinate_range
        - ptarray_construct_empty
        - ptarray_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:755,29'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:756,19'
          Dst:             ptarray_clamp_to_ordinate_range
        - Src:             'lwlinearreferencing.c:763,19'
          Dst:             getPoint4d
        - Src:             'lwlinearreferencing.c:767,22'
          Dst:             ptarray_construct_empty
        - Src:             'lwlinearreferencing.c:768,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:769,4'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:770,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:771,4'
          Dst:             getPoint4d_p
        - Src:             'lwlinearreferencing.c:772,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:773,4'
          Dst:             ptarray_append_point
        - Src:             'lwlinearreferencing.c:774,23'
          Dst:             lwtriangle_construct
        - Src:             'lwlinearreferencing.c:775,17'
          Dst:             lwcollection_add_lwgeom
        - Src:             'lwlinearreferencing.c:778,2'
          Dst:             ptarray_free
    - functionName:    lwcollection_clip_to_ordinate_range
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 819
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          209
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - lwcollection_as_lwgeom
        - lwcollection_concat_in_place
        - lwcollection_construct_empty
        - lwcollection_release
        - lwfree
        - lwgeom_clip_to_ordinate_range
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_refresh_bbox
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:792,16'
          Dst:             lwgeom_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:796,28'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwlinearreferencing.c:796,15'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:797,28'
          Dst:             lwcollection_as_lwgeom
        - Src:             'lwlinearreferencing.c:797,15'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:799,16'
          Dst:             lwcollection_construct_empty
        - Src:             'lwlinearreferencing.c:804,10'
          Dst:             lwgeom_clip_to_ordinate_range
        - Src:             'lwlinearreferencing.c:809,18'
          Dst:             lwcollection_concat_in_place
        - Src:             'lwlinearreferencing.c:810,5'
          Dst:             lwfree
        - Src:             'lwlinearreferencing.c:811,5'
          Dst:             lwcollection_release
        - Src:             'lwlinearreferencing.c:817,3'
          Dst:             lwgeom_refresh_bbox
    - functionName:    lwmline_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          143
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwgeom_is_empty
        - lwline_locate_along
        - lwmline_as_lwgeom
        - lwmpoint_add_lwpoint
        - lwmpoint_construct_empty
        - lwmpoint_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:152,16'
          Dst:             lwmline_as_lwgeom
        - Src:             'lwlinearreferencing.c:160,38'
          Dst:             lwgeom_get_srid
        - Src:             'lwlinearreferencing.c:160,60'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:160,79'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:160,13'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwlinearreferencing.c:165,21'
          Dst:             lwline_locate_along
        - Src:             'lwlinearreferencing.c:168,9'
          Dst:             lwgeom_is_empty
        - Src:             'lwlinearreferencing.c:172,6'
          Dst:             lwmpoint_add_lwpoint
        - Src:             'lwlinearreferencing.c:177,4'
          Dst:             lwmpoint_free
    - functionName:    lwline_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          105
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwline_as_lwgeom
        - lwline_free
        - lwline_measured_from_lwline
        - lwmpoint_construct
        - lwmpoint_construct_empty
        - ptarray_free
        - ptarray_locate_along
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:114,16'
          Dst:             lwline_as_lwgeom
        - Src:             'lwlinearreferencing.c:122,9'
          Dst:             lwgeom_get_srid
        - Src:             'lwlinearreferencing.c:123,9'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:124,9'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:129,9'
          Dst:             ptarray_locate_along
        - Src:             'lwlinearreferencing.c:133,29'
          Dst:             lwline_measured_from_lwline
        - Src:             'lwlinearreferencing.c:134,9'
          Dst:             ptarray_locate_along
        - Src:             'lwlinearreferencing.c:135,3'
          Dst:             lwline_free
        - Src:             'lwlinearreferencing.c:140,10'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwlinearreferencing.c:143,7'
          Dst:             lwmpoint_construct
        - Src:             'lwlinearreferencing.c:144,2'
          Dst:             ptarray_free
    - functionName:    lwmpoint_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwmpoint_add_lwpoint
        - lwmpoint_as_lwgeom
        - lwmpoint_construct_empty
        - lwpoint_clone
        - lwpoint_get_m
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:199,16'
          Dst:             lwmpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:204,35'
          Dst:             lwgeom_get_srid
        - Src:             'lwlinearreferencing.c:204,57'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:204,76'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:204,10'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwlinearreferencing.c:208,20'
          Dst:             lwpoint_get_m
        - Src:             'lwlinearreferencing.c:211,32'
          Dst:             lwpoint_clone
        - Src:             'lwlinearreferencing.c:211,4'
          Dst:             lwmpoint_add_lwpoint
    - functionName:    lwpoint_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lwgeom_get_srid
        - lwgeom_has_m
        - lwgeom_has_z
        - lwmpoint_add_lwpoint
        - lwmpoint_construct_empty
        - lwpoint_as_lwgeom
        - lwpoint_clone
        - lwpoint_get_m
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwlinearreferencing.c:186,19'
          Dst:             lwpoint_get_m
        - Src:             'lwlinearreferencing.c:187,16'
          Dst:             lwpoint_as_lwgeom
        - Src:             'lwlinearreferencing.c:188,41'
          Dst:             lwgeom_get_srid
        - Src:             'lwlinearreferencing.c:188,63'
          Dst:             lwgeom_has_z
        - Src:             'lwlinearreferencing.c:188,82'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:188,16'
          Dst:             lwmpoint_construct_empty
        - Src:             'lwlinearreferencing.c:191,27'
          Dst:             lwpoint_clone
        - Src:             'lwlinearreferencing.c:191,3'
          Dst:             lwmpoint_add_lwpoint
    - functionName:    lwgeom_locate_along
      functionSourceFile: '/src/postgis/liblwgeom/lwlinearreferencing.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - double
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - lwerror
        - lwgeom_has_m
        - lwline_locate_along
        - lwmline_locate_along
        - lwmpoint_locate_along
        - lwpoint_locate_along
        - lwtype_name
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lwlinearreferencing.c:227,2'
          Branch Sides:    []
      Callsites:
        - Src:             'lwlinearreferencing.c:224,7'
          Dst:             lwgeom_has_m
        - Src:             'lwlinearreferencing.c:225,3'
          Dst:             lwerror
        - Src:             'lwlinearreferencing.c:230,20'
          Dst:             lwpoint_locate_along
        - Src:             'lwlinearreferencing.c:232,20'
          Dst:             lwmpoint_locate_along
        - Src:             'lwlinearreferencing.c:234,20'
          Dst:             lwline_locate_along
        - Src:             'lwlinearreferencing.c:236,20'
          Dst:             lwmline_locate_along
        - Src:             'lwlinearreferencing.c:241,65'
          Dst:             lwtype_name
        - Src:             'lwlinearreferencing.c:241,3'
          Dst:             lwerror
    - functionName:    lwrandom_uniform
      functionSourceFile: '/src/postgis/liblwgeom/lwrandom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      double
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          101
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _lwrandom_get_seed
      functionSourceFile: '/src/postgis/liblwgeom/lwrandom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _lwrandom_set_seeds
      functionSourceFile: '/src/postgis/liblwgeom/lwrandom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lwrandom_set_seed
      functionSourceFile: '/src/postgis/liblwgeom/lwrandom.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - getpid
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lwrandom.c:53,25'
          Dst:             time
        - Src:             'lwrandom.c:53,52'
          Dst:             getpid
    - functionName:    time
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
...
