#include <iostream>
#include <cstdlib>
#include <cmath>
#include "snaps.h"
#include "mkisosu.h"
#include "mcntl.h"
#include "mfile_open.h"
#include "mecon.h"
#include "option.h"

double round2( double a , int n );

void tumatumi_cal_jisseki()
{
	int nendo;
	int seido;
	int data_number;
	double buffer[DATA_MAX];
		for( nendo = 2019 ; nendo <= TUMATUMI_NENDO + TUMATUMI_KIKAN - 1 ; nendo++ )
		{
			if( read_data( buffer , fp_in[TUMATUMI_RATE] , &data_number ) != EOF )
			{
				i_rate_tumatumi[nendo - SHONENDO] = 1 + buffer[1] / 100.;
			}
			else
			{
				printf("ファイルが読み込めていません");
				exit( 1 );
			}

			if( i_rate_tumatumi[nendo - SHONENDO] < 1.0 )
			{
				printf("妻積用利率がマイナスです。経済前提を見直してください。");
				exit( 1 );
			}
		}
		fclose(fp_in[TUMATUMI_RATE]);
		
		for( nendo = TUMATUMI_NENDO ; nendo <= TUMATUMI_NENDO + TUMATUMI_KIKAN - 1 ; nendo++ )
		{
		
			if( nendo > 2019 )
			{
				Tumatumi[BUNPAI][nendo - SHONENDO]
					= Tumatumi_2014[SUM] * 1. / TUMATUMI_KIKAN
					+ Tumatumi[SUM][nendo - 1 - SHONENDO] * ( pow( i_rate_tumatumi[nendo - 1 - SHONENDO] , 6. / 12. ) * pow( i_rate_tumatumi[nendo - SHONENDO] , 6. / 12. ) - 1 );
			
			}
			if( nendo == TUMATUMI_NENDO )
			{
				Tumatumi[SUM][nendo - SHONENDO]
					= Tumatumi_2014[SUM] - ( Tumatumi_2014[SUM] * 1. / TUMATUMI_KIKAN );
			}
			else
			{
				Tumatumi[SUM][nendo - SHONENDO]
					= Tumatumi[SUM][nendo - 1 - SHONENDO] - ( Tumatumi_2014[SUM] * 1. / TUMATUMI_KIKAN );
			}
		}

		for( nendo = TUMATUMI_NENDO + 1 ; nendo <= TUMATUMI_NENDO + TUMATUMI_KIKAN - 1 ; nendo++ )
		{
			Tumatumi[KOKUNEN][nendo - SHONENDO]
			 = Tumatumi[BUNPAI][nendo - SHONENDO] / 2. * SanteiTaishou[KOKUNEN][nendo - SHONENDO][1] / SanteiTaishou[SUM][nendo - SHONENDO][SUM];
			
			for( seido = KOUNEN ; seido <= SHIGAKU ; seido++ )
			{
				Tumatumi[seido][nendo - SHONENDO]
				 = Tumatumi[BUNPAI][nendo - SHONENDO] / 2.
 				    * ( SanteiTaishou[seido][nendo - SHONENDO][SUM] / SanteiTaishou[SUM][nendo - SHONENDO][SUM]
				         + (( SanteiTaishou[seido][nendo - SHONENDO][2] + SanteiTaishou[seido][nendo - SHONENDO][3] )
				          / ( SanteiTaishou[SUM][nendo - SHONENDO][2] + SanteiTaishou[SUM][nendo - SHONENDO][3] ) ) );
			}
		}
		
		fprintf( fp_out[TUMATUMI_OUT] , "%d," , TUMATUMI_NENDO - 1 - 2000 );
		fprintf( fp_out[TUMATUMI_OUT] , "%20.14e," , 0 );
		for( seido = KOUNEN ; seido <= SHIGAKU ; seido++ )
		{
			fprintf( fp_out[TUMATUMI_OUT] , "%20.14e," , 0 );
		}
		fprintf( fp_out[TUMATUMI_OUT] , "%20.14e\n" , Tumatumi_2014[SUM] );
		
		for( nendo = TUMATUMI_NENDO ; nendo <= SAISHUNENDO ; nendo++ )
		{
			fprintf( fp_out[TUMATUMI_OUT] , "%d," , nendo - 2000 );
			for( seido = KOKUNEN ; seido <= SHIGAKU ; seido++ )
			{
				fprintf( fp_out[TUMATUMI_OUT] , "%20.14e," , Tumatumi[seido][nendo - SHONENDO] );
			}
			fprintf( fp_out[TUMATUMI_OUT] , "%20.14e\n" , Tumatumi[SUM][nendo - SHONENDO] );
		}
}

