#! /usr/bin/env python # def r8poly_order ( na, a ): #*****************************************************************************80 # ## R8POLY_ORDER returns the order of a polynomial in power sum form. # # Discussion: # # The order of a constant polynomial is 1. # # Licensing: # # This code is distributed under the GNU LGPL license. # # Modified: # # 09 August 2018 # # Author: # # John Burkardt # # Parameters: # # Input, integer NA, the number of coefficients. # # Input, real A[NA], the coefficients of the polynomial. # # Output, integer ORDER, the order of the polynomial. # order = na while ( 1 < order ): if ( a[order-1] != 0.0 ): return order order = order - 1 return order def r8poly_order_test ( ): #*****************************************************************************80 # ## R8POLY_ORDER_TEST tests R8POLY_ORDER. # # Licensing: # # This code is distributed under the GNU LGPL license. # # Modified: # # 09 August 2018 # # Author: # # John Burkardt # import numpy as np from r8poly_print import r8poly_print c1 = np.array ( [ 1.0, 2.0, 3.0, 4.0 ] ) c2 = np.array ( [ 1.0, 2.0, 3.0, 0.0 ] ) c3 = np.array ( [ 1.0, 2.0, 0.0, 4.0 ] ) c4 = np.array ( [ 1.0, 0.0, 0.0, 0.0 ] ) c5 = np.array ( [ 0.0, 0.0, 0.0, 0.0 ] ) print ( '' ) print ( 'R8POLY_ORDER_TEST' ) print ( ' R8POLY_ORDER determines the order of an R8POLY.' ) order = 4 degree = 3 r8poly_print ( degree, c1, ' The R8POLY:' ) o = r8poly_order ( order, c1 ) print ( ' Dimensioned order = %d, Actual order = %d' % ( order, o ) ) r8poly_print ( degree, c2, ' The R8POLY:' ) o = r8poly_order ( order, c2 ) print ( ' Dimensioned order = %d, Actual order = %d' % ( order, o ) ) r8poly_print ( degree, c3, ' The R8POLY:' ) o = r8poly_order ( order, c3 ) print ( ' Dimensioned order = %d, Actual order = %d' % ( order, o ) ) r8poly_print ( degree, c4, ' The R8POLY:' ) o = r8poly_order ( order, c4 ) print ( ' Dimensioned order = %d, Actual order = %d' % ( order, o ) ) r8poly_print ( degree, c5, ' The R8POLY:' ) o = r8poly_order ( order, c5 ) print ( ' Dimensioned order = %d, Actual order = %d' % ( order, o ) ) # # Terminate. # print ( '' ) print ( 'R8POLY_ORDER_TEST:' ) print ( ' Normal end of execution.' ) return if ( __name__ == '__main__' ): from timestamp import timestamp timestamp ( ) r8poly_order_test ( ) timestamp ( )