LCOV - code coverage report
Current view: top level - modules/arithmetic - arith.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 12 12 100.0 %
Date: 2024-05-13 05:06:06 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*************************************************************************
       2             :  *
       3             :  *  Project
       4             :  *                         _____ _____  __  __ _____
       5             :  *                        / ____|  __ \|  \/  |  __ \
       6             :  *  ___  _ __   ___ _ __ | |  __| |__) | \  / | |__) |
       7             :  * / _ \| '_ \ / _ \ '_ \| | |_ |  ___/| |\/| |  ___/
       8             :  *| (_) | |_) |  __/ | | | |__| | |    | |  | | |
       9             :  * \___/| .__/ \___|_| |_|\_____|_|    |_|  |_|_|
      10             :  *      | |
      11             :  *      |_|
      12             :  *
      13             :  * Copyright (C) Akiel Aries, <akiel@akiel.org>, et al.
      14             :  *
      15             :  * This software is licensed as described in the file LICENSE, which
      16             :  * you should have received as part of this distribution. The terms
      17             :  * among other details are referenced in the official documentation
      18             :  * seen here : https://akielaries.github.io/openGPMP/ along with
      19             :  * important files seen in this project.
      20             :  *
      21             :  * You may opt to use, copy, modify, merge, publish, distribute
      22             :  * and/or sell copies of the Software, and permit persons to whom
      23             :  * the Software is furnished to do so, under the terms of the
      24             :  * LICENSE file.
      25             :  *
      26             :  *
      27             :  *
      28             :  * This software is distributed on an AS IS basis, WITHOUT
      29             :  * WARRANTY OF ANY KIND, either express or implied.
      30             :  *
      31             :  ************************************************************************/
      32             : 
      33             : /*
      34             :  * stubbed out implementation file for arithmetic operations
      35             :  */
      36             : #include <cstdint>
      37             : #include <openGPMP/arithmetic.hpp>
      38             : 
      39           2 : int64_t gpmp::Basics::greatest_power(int64_t n, int64_t p) {
      40           2 :     int64_t result = 0;
      41             : 
      42             :     // Calculate x = n/p + n/(p^2) + n/(p^3) + ....
      43           7 :     while (n) {
      44           5 :         n /= p;
      45           5 :         result += n;
      46             :     }
      47           2 :     return result;
      48             : }
      49             : 
      50        3474 : int64_t gpmp::Basics::op_gcd(int64_t x, int64_t y) {
      51        3474 :     if (x < y)
      52         562 :         return op_gcd(y, x);
      53             : 
      54        2912 :     else if (x % y == 0)
      55         566 :         return y;
      56             : 
      57             :     else
      58        2346 :         return op_gcd(y, x % y);
      59             : }

Generated by: LCOV version 1.14