import chess.Chess;
import java.math.BigDecimal;

public class CalculatePi_1 {
    
    public static void main(String[] args) {
        /* here you go */
        
        /* pi= 4 * ( 1.0 - 1/3. + 1/5. - 1/7. + 1/9. + ... ) */
        
        BigDecimal pi= new BigDecimal(1.0);
        
        int scale= 30;
        
        double denominator=3;
        
        int update=100000;
        
        while ( denominator<1e19 ) {
            pi= pi.subtract( new BigDecimal(1).divide( 
                    new BigDecimal( denominator ),scale, 
                    BigDecimal.ROUND_UNNECESSARY ) );
            pi= pi.add( new BigDecimal(1).divide( 
                    new BigDecimal( denominator + 2 ),scale, 
                    BigDecimal.ROUND_UNNECESSARY ) );
            denominator= denominator + 4;
            update= update-1;
            if ( update==0 ) {
                BigDecimal d= pi.multiply( new BigDecimal(4) );
                update=100000;
                System.out.println("pi="+d);
            }
        }
        
        pi= pi.multiply( new BigDecimal(4) );
        
        Chess.report( "pi="+pi+" "+Math.PI );
        
        /* two braces below */
    }
    
}
