program test_pfcoef
use pfcoef_class
implicit none
type(partial_fraction_coef) :: pfcoef
integer :: itype,np,nsp,i
real(8) :: a,b
real(8) :: x,f,p,dx
nsp = 1000
itype=+1
np= 10
a = 0.01d0
b = 2.00d0
call new(pfcoef,itype,np,a,b)
write(*,'("# NPOW=",I3)')pfcoef%npow
write(*,'("# [a,b]=",2E24.15)')pfcoef%a,pfcoef%b
write(*,'("# MINMAXERROR=",E24.15)')pfcoef%minimaxerror
write(*,'("# ALP,BET=",E24.15)')pfcoef%alp(0)
do i=1,np
write(*,'("# ALP,BET=",2E24.15)')pfcoef%alp(i),pfcoef%bet(i)
enddo
!
! print approximation residual partial fraction form and rational form
!
write(*,'("# x R(x) PF(x)")')
dx=(log(b)-log(a))/nsp
do i=0,nsp
x = a * EXP(dx)**i
f = get_value(pfcoef,x)
p = sqrt(x)
write(*,'(9E28.15E4)')x,f,p,(f-p)/f
enddo
call delete(pfcoef)
stop
end program