示例#1
0
int main( int argc, char **unused_argv)
{
   double matrix[9], prev_matrix[9];
   int i, j, system_number, rval;
   clock_t t0 = clock( );

   setvbuf( stdout, NULL, _IONBF, 0);
   if( argc == 2)
      produce_fixed_cospar( );
   for( i = 0; i < 9; i++)
      prev_matrix[i] = 0.;
   for( i = -5; i < 2000; i++)
      {
      for( system_number = 0; system_number < 4; system_number++)
         {
         rval = calc_planet_orientation( i, system_number,
                        2451000. + (double)i * 1000., matrix);
         if( rval && rval != -1)
            printf( "rval %d\n", rval);
         else if( !rval)
            if( memcmp( matrix, prev_matrix, 9 * sizeof( double)))
               {
               printf( "Planet %d, system %d\n", i, system_number);
               for( j = 0; j < 9; j += 3)
                  printf( "%11.8lf %11.8lf %11.8lf\n",
                             matrix[j], matrix[j + 1], matrix[j + 2]);
               for( j = 0; j < 9; j++)
                  prev_matrix[j] = matrix[j];
               }
         }
      }
   printf( "Total time: %lf\n",
            (double)( clock() - t0) / (double)CLOCKS_PER_SEC);
   return( 0);
}
示例#2
0
void main( int argc, char **argv)
{
   double pole_ra, pole_dec, omega;
   const int planet_number = atoi( argv[1]);
   const double jde = atof( argv[2]);
   const int system_number = (argc > 3 ? atoi( argv[3]) : 0);
   int i, j;

   for( i = (planet_number == -1 ? 0 : planet_number);
        i < (planet_number == -1 ? 100 : planet_number + 1); i++)
      {
      int err = get_cospar_data_from_text_file( i, system_number, jde,
                      &pole_ra, &pole_dec, &omega);

      printf( "Planet %d\n", i);
      if( !err)
         {
         double old_mat[9], new_mat[9], delta = 0.;

         printf( "   pole RA: %lf\n", pole_ra);
         printf( "   pole dec %lf\n", pole_dec);
         printf( "   Omega    %lf (%lf)\n", omega, fmod( omega, 360.));
         if( !calc_planet_orientation2( i, system_number, jde, new_mat))
            if( !calc_planet_orientation( i, system_number, jde, old_mat))
               {
               for( j = 0; j < 9; j += 3)
                  printf( "%10.6lf %10.6lf %10.6lf    %10.6lf %10.6lf %10.6lf\n",
                           new_mat[j], new_mat[j + 1], new_mat[j + 2],
                           old_mat[j], old_mat[j + 1], old_mat[j + 2]);
               for( j = 0; j < 9; j++)
                  delta += (new_mat[j] - old_mat[j]) * (new_mat[j] - old_mat[j]);
               printf( "Diff: %lf\n", sqrt( delta));
               }
         }
      else
         printf( "   Error %d\n", err);
      }
}