#!/usr/bin/env python # -*- coding: utf-8 -*- # written by Christoph Federrath, 2021 # define imports import argparse import numpy as np import timeit from mytools import print, stop # sum up numbers in list n using a loop #import numba #@numba.jit def sum_loop(n): sum = 0 for i in range(0, len(n)): sum += n[i] return sum # sum up numbers in list n using np.sum() def sum_np(n): sum = np.sum(n) return sum # ===== the following applies in case we are running this in script mode ===== if __name__ == "__main__": parser = argparse.ArgumentParser(description='Sum numbers from 1 to n.') parser.add_argument("-n", "--n", type=float, help="Number n", default=1e8) parser.add_argument("-l", "--loop", action='store_true', default=False, help="Sum via loop") args = parser.parse_args() # cast float n to int int_n = int(args.n) # print print("Summing all integers from 1 to "+str(int_n)+"...") # define array with numbers (for np.sum() below) numbers = np.arange(int_n)+1 # start the timer start_time = timeit.default_timer() if args.loop: print("...using loop...") sum = sum_loop(numbers) else: # sum up with numpy.sum() print("...using np.sum()...") sum = sum_np(numbers) # stop the timer end_time = timeit.default_timer() # print the sum to stdout print("Sum = "+str(sum)) # print the time it took print("Run time = "+str(end_time-start_time)+" s")