


'''simple docstring'''


import math
from datetime import datetime, timedelta






def        __lowerCAmelCase       (__lowerCAmelCase      ):
		_UpperCAmelCase						:				Dict	    =					year % 19
		_UpperCAmelCase						:				int	    =					year % 4
		_UpperCAmelCase						:				Optional[Any]	    =					year % 7
		_UpperCAmelCase						:				Union[str, Any]	    =					math.floor(year / 100      )
		_UpperCAmelCase						:				Optional[Any]	    =					math.floor((13 + 8 * leap_day_inhibits) / 25      )
		_UpperCAmelCase						:				Any	    =					leap_day_inhibits / 4
		_UpperCAmelCase						:				List[str]	    =					(
		    15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
		) % 30
		_UpperCAmelCase						:				Any	    =					(4 + leap_day_inhibits - leap_day_reinstall_number) % 7

		# days to be added to March 21
		_UpperCAmelCase						:				Union[str, Any]	    =					(19 * metonic_cycle + secular_moon_shift) % 30

		# PHM -> Paschal Full Moon
		_UpperCAmelCase						:				str	    =					(
		    2 * julian_leap_year
		    + 4 * non_leap_year
		    + 6 * days_to_add
		    + century_starting_point
		) % 7

		if days_to_add == 29 and days_from_phm_to_sunday == 6:
				return datetime(UpperCamelCase__					,       4					,       19      )
		elif days_to_add == 28 and days_from_phm_to_sunday == 6:
				return datetime(UpperCamelCase__					,       4					,       18      )
		else:
				return datetime(UpperCamelCase__					,       3					,       22      ) + timedelta(
				    days=int(days_to_add + days_from_phm_to_sunday      )      )


if __name__ == "__main__":
						for year in (1_994, 2_000, 2_010, 2_021, 2_023):
												lowerCamelCase__					=   """will be""" if year > datetime.now().year else """was"""
												print(F'''Easter in {year} {tense} {gauss_easter(year)}''')






from __future__ import annotations

import numpy as np





def 					__lowerCamelCase	( UpperCamelCase__      ):







							'''simple docstring'''






							snake_case_				,    snake_case_							=    np.shape(UpperCamelCase__      )
							if rows != columns:
														snake_case_							=    (
														    '\'table\' has to be of square shaped array but got a '
														    F'''{rows}x{columns} array:\n{table}'''
														)
														raise ValueError(UpperCamelCase__      )

							snake_case_							=    np.zeros((rows, columns)      )
							snake_case_							=    np.zeros((rows, columns)      )
							for i in range(UpperCamelCase__      ):
														for j in range(UpperCamelCase__      ):
																					snake_case_							=    sum(lower[i][k] * upper[k][j] for k in range(UpperCamelCase__      )      )
																					if upper[j][j] == 0:
																												raise ArithmeticError('No LU decomposition exists'      )
																					snake_case_							=    (table[i][j] - total) / upper[j][j]
														snake_case_							=    1
														for j in range(UpperCamelCase__   ,							UpperCamelCase__      ):
																					snake_case_							=    sum(lower[i][k] * upper[k][j] for k in range(UpperCamelCase__      )      )
																					snake_case_							=    table[i][j] - total
							return lower, upper


if __name__ == "__main__":
					import doctest

					doctest.testmod()




