android / renderscript-intrinsics-replacement-toolkit
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 205 units with 5,049 lines of code in units (28.6% of code).
    • 2 very complex units (491 lines of code)
    • 1 complex units (67 lines of code)
    • 6 medium complex units (371 lines of code)
    • 14 simple units (445 lines of code)
    • 182 very simple units (3,675 lines of code)
9% | 1% | 7% | 8% | 72%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
cpp14% | 1% | 10% | 10% | 62%
kt0% | 0% | 0% | 4% | 95%
h0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
renderscript-toolkit/src/main/cpp14% | 1% | 10% | 10% | 62%
test-app/src/main/java/com/google/android/renderscript_test0% | 0% | 0% | 4% | 95%
renderscript-toolkit/src/main/java/com/google/android/renderscript0% | 0% | 0% | 6% | 93%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
bool ColorMatrixTask::build()
in renderscript-toolkit/src/main/cpp/ColorMatrix.cpp
234 65 1
void BlendTask::blend()
in renderscript-toolkit/src/main/cpp/Blend.cpp
257 64 4
Key_t ColorMatrixTask::computeKey()
in renderscript-toolkit/src/main/cpp/ColorMatrix.cpp
67 31 2
static void One()
in renderscript-toolkit/src/main/cpp/ColorMatrix.cpp
90 23 8
void ColorMatrixTask::preLaunch()
in renderscript-toolkit/src/main/cpp/ColorMatrix.cpp
92 20 4
void BlurTask::kernelU1()
in renderscript-toolkit/src/main/cpp/Blur.cpp
56 15 4
void BlurTask::kernelU4()
in renderscript-toolkit/src/main/cpp/Blur.cpp
58 14 5
void TaskProcessor::processTilesOfWork()
in renderscript-toolkit/src/main/cpp/TaskProcessor.cpp
29 13 2
void YuvToRgbTask::kernel()
in renderscript-toolkit/src/main/cpp/YuvToRgb.cpp
46 11 4
void ResizeTask::preLaunch()
in renderscript-toolkit/src/main/cpp/Resize.cpp
30 10 2
static void OneVFU1()
in renderscript-toolkit/src/main/cpp/Blur.cpp
49 9 7
void Convolve5x5Task::kernelU4()
in renderscript-toolkit/src/main/cpp/Convolve5x5.cpp
38 8 8
void ColorMatrixTask::kernel()
in renderscript-toolkit/src/main/cpp/ColorMatrix.cpp
38 8 4
bool cpuSupportsSimd()
in renderscript-toolkit/src/main/cpp/Utils.cpp
13 8 0
bool validRestriction()
in renderscript-toolkit/src/main/cpp/Utils.cpp
30 8 4
void Convolve3x3Task::kernelU4()
in renderscript-toolkit/src/main/cpp/Convolve3x3.cpp
31 7 6
void RenderScriptToolkit::histogramDot()
in renderscript-toolkit/src/main/cpp/Histogram.cpp
32 7 7
static uchar4 rsYuvToRGBA_uchar4()
in renderscript-toolkit/src/main/cpp/YuvToRgb.cpp
30 7 3
fun intrinsicHistogramDot()
in test-app/src/main/java/com/google/android/renderscript_test/IntrinsicHistogram.kt
48 6 7
void HistogramTask::processData()
in renderscript-toolkit/src/main/cpp/Histogram.cpp
27 6 5