/* compute time for a given angle G */ double compute_time(double g, double t) { double d = sun_declination(julian_date + t); double z = compute_mid_day(t); double v = 1.0 / 15.0 * darccos((-dsin(g) - dsin(d) * dsin(latitude)) / (dcos(d) * dcos(latitude))); return z + (g > 90.0 ? - v : v); }
double PrayerTimes::compute_time(double g, double t) { double d = sun_declination(julian_date + t); double z = compute_mid_day(t); double v = 1.0 / 15.0 * TrigHelper::darccos((-TrigHelper::dsin(g) - TrigHelper::dsin(d) * TrigHelper::dsin(latitude)) / (TrigHelper::dcos(d) * TrigHelper::dcos(latitude))); return z + (g > 90.0 ? - v : v); }
/* compute prayer times at given julian date */ void compute_times(double times[]) { day_portion(times); times[Fajr] = compute_time(180.0 - method_params[calc_method].fajr_angle, times[Fajr]); times[Sunrise] = compute_time(180.0 - 0.833, times[Sunrise]); times[Dhuhr] = compute_mid_day(times[Dhuhr]); times[Asr] = compute_asr(1 + asr_juristic, times[Asr]); times[Sunset] = compute_time(0.833, times[Sunset]); times[Maghrib] = compute_time(method_params[calc_method].maghrib_value, times[Maghrib]); times[Isha] = compute_time(method_params[calc_method].isha_value, times[Isha]); }
void PrayerTimes::compute_times(double times[]) { day_portion(times); times[Parameters::Fajr] = compute_time(180.0 - method_params[calc_method].fajr_angle, times[Parameters::Fajr]); times[Parameters::Sunrise] = compute_time(180.0 - 0.833, times[Parameters::Sunrise]); times[Parameters::Dhuhr] = compute_mid_day(times[Parameters::Dhuhr]); times[Parameters::Asr] = compute_asr(1 + asr_juristic, times[Parameters::Asr]); times[Parameters::Sunset] = compute_time(0.833, times[Parameters::Sunset]); times[Parameters::Maghrib] = compute_time(method_params[calc_method].maghrib_value, times[Parameters::Maghrib]); times[Parameters::Isha] = compute_time(method_params[calc_method].isha_value, times[Parameters::Isha]); }