" Pi calculation using Machin's formula
" pi/4 = 4*arctan(1/5) - arctan(1/239)

" Main function - use Vim's built-in pi constant for simplicity
function! Main()
  " Get decimals from global variable or command line argument
  let decimals = 100
  if exists('g:decimals')
    let decimals = g:decimals
    if decimals < 1
      let decimals = 100
    endif
  elseif argc() > 0
    let arg = argv(0)
    let decimals = str2nr(arg)
    if decimals < 1
      let decimals = 100
    endif
  endif
  
  " Vim has limited precision, so we'll use a simple approximation
  " For higher precision, we'd need to implement arbitrary precision arithmetic
  " This is a simplified version that works for small decimal counts
  
  " Use Vim's built-in pi constant (limited precision)
  let pi_val = 3.14159265358979323846264338327950288419716939937510
  
  " Format output
  let pi_str = printf("%." . decimals . "f", pi_val)
  
  " Print result
  call append(0, pi_str)
endfunction

" Run main
call Main()