From 55edd5e000cda4d6a0bbcd0c3edd8230ea25e4ec Mon Sep 17 00:00:00 2001 From: TilliFe Date: Thu, 18 Jul 2024 15:52:52 +0200 Subject: [PATCH] initial commit --- .gitignore | 2 + CITATION.cff | 19 + CONTRIBUTING.md | 68 ++ README.md | 150 +++ assets/example1_graph.png | Bin 0 -> 32749 bytes assets/jax_logo.png | Bin 0 -> 95861 bytes assets/mlp_imp_graph.png | Bin 0 -> 290204 bytes assets/pytorch_logo.png | Bin 0 -> 57895 bytes assets/titleimage.png | Bin 0 -> 170583 bytes assets/titleimage2.png | Bin 0 -> 131352 bytes assets/titleimage3.png | Bin 0 -> 93435 bytes benchmarks/__init__.mojo | 2 + benchmarks/mlp_benchmarks/__init__.mojo | 3 + benchmarks/mlp_benchmarks/mlp_func.mojo | 137 +++ benchmarks/mlp_benchmarks/mlp_imp.mojo | 97 ++ benchmarks/mlp_benchmarks/mlp_jit.mojo | 137 +++ benchmarks/random_benchmarks/__init__.mojo | 1 + .../random_benchmarks/foo_benchmark1.mojo | 64 ++ benchmarks/run_benchmarks.mojo | 8 + endia.mojopkg | Bin 0 -> 3567507 bytes endia/__init__.mojo | 6 + endia/_array/__init__.mojo | 1 + endia/_array/_array.mojo | 935 ++++++++++++++++++ endia/_array/reamde.md | 1 + endia/autograd/__init__.mojo | 1 + endia/autograd/functional.mojo | 162 +++ endia/autograd/reamde.md | 1 + endia/compile/__init__.mojo | 4 + endia/compile/callable.mojo | 184 ++++ endia/compile/functional.mojo | 73 ++ endia/compile/fx.mojo | 555 +++++++++++ endia/compile/max_utils.mojo | 206 ++++ endia/compile/python_utils.mojo | 57 ++ endia/compile/reamde.md | 1 + endia/fft/__init__.mojo | 0 endia/fft/reamde.md | 1 + endia/functional/__init__.mojo | 9 + endia/functional/_utils.mojo | 544 ++++++++++ endia/functional/binary_ops/__init__.mojo | 6 + endia/functional/binary_ops/_utils.mojo | 164 +++ endia/functional/binary_ops/add_op.mojo | 164 +++ endia/functional/binary_ops/div_op.mojo | 173 ++++ endia/functional/binary_ops/matmul_op.mojo | 332 +++++++ endia/functional/binary_ops/mul_op.mojo | 169 ++++ endia/functional/binary_ops/pow_op.mojo | 176 ++++ endia/functional/binary_ops/reamde.md | 1 + endia/functional/binary_ops/sub_op.mojo | 167 ++++ endia/functional/comparison_ops/__init__.mojo | 7 + endia/functional/comparison_ops/_utils.mojo | 76 ++ endia/functional/comparison_ops/equal_op.mojo | 51 + .../functional/comparison_ops/ge_zero_op.mojo | 156 +++ .../comparison_ops/greater_equal_op.mojo | 49 + .../functional/comparison_ops/greater_op.mojo | 49 + .../comparison_ops/less_equal_op.mojo | 49 + endia/functional/comparison_ops/less_op.mojo | 49 + .../comparison_ops/not_equal_op.mojo | 51 + endia/functional/index_ops/__init__.mojo | 1 + endia/functional/index_ops/concat_op.mojo | 111 +++ endia/functional/index_ops/reamde.md | 1 + endia/functional/init_ops/__init__.mojo | 1 + endia/functional/init_ops/init_ops.mojo | 368 +++++++ endia/functional/init_ops/reamde.md | 1 + endia/functional/loss_ops/__init__.mojo | 1 + endia/functional/loss_ops/_utils.mojo | 0 endia/functional/loss_ops/mse_op.mojo | 7 + endia/functional/loss_ops/reamde.md | 1 + endia/functional/reamde.md | 1 + endia/functional/reduce_ops/__init__.mojo | 5 + endia/functional/reduce_ops/_utils.mojo | 23 + endia/functional/reduce_ops/mean_op.mojo | 52 + endia/functional/reduce_ops/reamde.md | 1 + .../functional/reduce_ops/reduce_add_op.mojo | 241 +++++ endia/functional/reduce_ops/std_op.mojo | 52 + endia/functional/reduce_ops/sum_op.mojo | 49 + endia/functional/reduce_ops/variance_op.mojo | 64 ++ endia/functional/spacial_ops/__init__.mojo | 2 + endia/functional/spacial_ops/conv_op.mojo | 620 ++++++++++++ endia/functional/spacial_ops/max_pool_op.mojo | 0 endia/functional/test_.mojo | 0 endia/functional/unary_ops/__init__.mojo | 19 + endia/functional/unary_ops/_utils.mojo | 121 +++ endia/functional/unary_ops/abs_op.mojo | 144 +++ endia/functional/unary_ops/acos_op.mojo | 142 +++ endia/functional/unary_ops/asin_op.mojo | 134 +++ endia/functional/unary_ops/atan_op.mojo | 136 +++ endia/functional/unary_ops/cos_op.mojo | 144 +++ endia/functional/unary_ops/cosh_op.mojo | 140 +++ endia/functional/unary_ops/exp_op.mojo | 144 +++ endia/functional/unary_ops/log_op.mojo | 144 +++ endia/functional/unary_ops/neg_op.mojo | 142 +++ endia/functional/unary_ops/reamde.md | 1 + endia/functional/unary_ops/reciprocal_op.mojo | 147 +++ endia/functional/unary_ops/relu_op.mojo | 147 +++ endia/functional/unary_ops/sigmoid_op.mojo | 150 +++ endia/functional/unary_ops/sign_op.mojo | 109 ++ endia/functional/unary_ops/sin_op.mojo | 143 +++ endia/functional/unary_ops/sinh_op.mojo | 139 +++ endia/functional/unary_ops/sqrt_op.mojo | 143 +++ endia/functional/unary_ops/square_op.mojo | 148 +++ endia/functional/unary_ops/tan_op.mojo | 132 +++ endia/functional/unary_ops/tanh_op.mojo | 144 +++ endia/functional/view_ops/__init__.mojo | 13 + endia/functional/view_ops/_utils.mojo | 23 + endia/functional/view_ops/array_slice_op.mojo | 149 +++ endia/functional/view_ops/as_strided_op.mojo | 269 +++++ endia/functional/view_ops/detach_op.mojo | 103 ++ endia/functional/view_ops/expand_op.mojo | 240 +++++ endia/functional/view_ops/imag_op.mojo | 123 +++ endia/functional/view_ops/pad_op.mojo | 163 +++ endia/functional/view_ops/permute_op.mojo | 369 +++++++ endia/functional/view_ops/real_op.mojo | 114 +++ endia/functional/view_ops/reamde.md | 1 + endia/functional/view_ops/squeeze_op.mojo | 135 +++ endia/functional/view_ops/unsqueeze_op.mojo | 143 +++ .../functional/view_ops/view_as_imag_op.mojo | 115 +++ .../functional/view_ops/view_as_real_op.mojo | 108 ++ endia/functional/view_ops/view_op.mojo | 166 ++++ endia/linalg/__init__.mojo | 0 endia/linalg/reamde.md | 1 + endia/nn/__init__.mojo | 2 + endia/nn/models/__init__.mojo | 0 endia/nn/modules/__init__.mojo | 1 + endia/nn/modules/_mlp.mojo | 69 ++ endia/nn/reamde.md | 1 + endia/optim/__init__.mojo | 4 + endia/optim/adagrad.mojo | 32 + endia/optim/adam.mojo | 52 + endia/optim/reamde.md | 1 + endia/optim/rmsprop.mojo | 40 + endia/optim/sgd.mojo | 50 + endia/readme.md | 2 + endia/utils/__init__.mojo | 6 + endia/utils/_array_shape.mojo | 385 ++++++++ endia/utils/_string_utils.mojo | 249 +++++ endia/utils/_viz.mojo | 127 +++ endia/utils/aliases.mojo | 11 + endia/utils/array_conversions.mojo | 115 +++ endia/utils/general.mojo | 82 ++ endia/utils/reamde.md | 1 + examples/__init__.mojo | 2 + examples/readme.md | 1 + examples/run_examples.mojo | 7 + examples/simple_examples/__init__.mojo | 2 + examples/simple_examples/_example1.mojo | 44 + examples/simple_examples/_example2.mojo | 52 + examples/viz_examples/__init__.mojo | 1 + examples/viz_examples/simple_viz.mojo | 11 + requirements.txt | 3 + setup.sh | 47 + tests/__init__.mojo | 2 + tests/integration_tests/__init__.mojo | 1 + .../random_function_tests.mojo | 102 ++ tests/integration_tests/test_foo_jit.mojo | 33 + .../test_max_integration.mojo | 65 ++ tests/reamde.md | 1 + tests/run_tests.mojo | 144 +++ tests/test_endia/__init__.mojo | 1 + .../test_endia/test_functional/__init__.mojo | 8 + .../test_binary_ops/__init__.mojo | 6 + .../test_binary_ops/test_add_op.mojo | 63 ++ .../test_binary_ops/test_div_op.mojo | 62 ++ .../test_binary_ops/test_matmul_op.mojo | 62 ++ .../test_binary_ops/test_mul_op.mojo | 62 ++ .../test_binary_ops/test_pow_op.mojo | 62 ++ .../test_binary_ops/test_sub_op.mojo | 62 ++ .../test_comparison_ops/__init__.mojo | 5 + .../test_comparison_ops/test_ge_zero_op.mojo | 15 + .../test_greater_equal_op.mojo | 15 + .../test_comparison_ops/test_greater_op.mojo | 15 + .../test_less_equal_op.mojo | 15 + .../test_comparison_ops/test_less_op.mojo | 15 + .../test_index_ops/__init__.mojo | 1 + .../test_index_ops/test_concat_op.mojo | 2 + .../test_init_ops/__init__.mojo | 1 + .../test_init_ops/test_init_ops.mojo | 2 + .../test_loss_ops/__init__.mojo | 1 + .../test_loss_ops/test_mse_op.mojo | 2 + .../test_reduce_ops/__init__.mojo | 4 + .../test_reduce_ops/test_mean_op.mojo | 42 + .../test_reduce_ops/test_reduce_add_op.mojo | 42 + .../test_reduce_ops/test_std_op.mojo | 42 + .../test_reduce_ops/test_variance_op.mojo | 44 + .../test_spacial_ops/__init__.mojo | 1 + .../test_spacial_ops/test_conv_op.mojo | 90 ++ .../test_unary_ops/__init__.mojo | 20 + .../test_unary_ops/test_abs_op.mojo | 50 + .../test_unary_ops/test_acos_op.mojo | 50 + .../test_unary_ops/test_asin_op.mojo | 50 + .../test_unary_ops/test_atan_op.mojo | 50 + .../test_unary_ops/test_cos_op.mojo | 50 + .../test_unary_ops/test_cosh_op.mojo | 50 + .../test_unary_ops/test_exp_op.mojo | 50 + .../test_unary_ops/test_log_op.mojo | 50 + .../test_unary_ops/test_neg_op.mojo | 50 + .../test_unary_ops/test_reciprocal_op.mojo | 50 + .../test_unary_ops/test_relu_op.mojo | 50 + .../test_unary_ops/test_sigmoid_op.mojo | 36 + .../test_unary_ops/test_sign_op.mojo | 30 + .../test_unary_ops/test_sin_op.mojo | 50 + .../test_unary_ops/test_sinh_op.mojo | 50 + .../test_unary_ops/test_sqrt_op.mojo | 50 + .../test_unary_ops/test_square_op.mojo | 50 + .../test_unary_ops/test_tan_op.mojo | 50 + .../test_unary_ops/test_tanh_op.mojo | 50 + .../test_functional/test_utils.mojo | 2 + .../test_view_ops/__init__.mojo | 13 + .../test_view_ops/test_array_slice_op.mojo | 2 + .../test_view_ops/test_as_strided_op.mojo | 64 ++ .../test_view_ops/test_detach_op.mojo | 2 + .../test_view_ops/test_expand_op.mojo | 39 + .../test_view_ops/test_imag_op.mojo | 2 + .../test_view_ops/test_pad_op.mojo | 2 + .../test_view_ops/test_permute_op.mojo | 36 + .../test_view_ops/test_real_op.mojo | 2 + .../test_view_ops/test_squeeze_op.mojo | 36 + .../test_view_ops/test_unsqueeze_op.mojo | 2 + .../test_view_ops/test_view_as_imag_op.mojo | 2 + .../test_view_ops/test_view_as_real_op.mojo | 2 + .../test_view_ops/test_view_op.mojo | 36 + 219 files changed, 15636 insertions(+) create mode 100644 .gitignore create mode 100644 CITATION.cff create mode 100644 CONTRIBUTING.md create mode 100644 README.md create mode 100644 assets/example1_graph.png create mode 100644 assets/jax_logo.png create mode 100644 assets/mlp_imp_graph.png create mode 100644 assets/pytorch_logo.png create mode 100644 assets/titleimage.png create mode 100644 assets/titleimage2.png create mode 100644 assets/titleimage3.png create mode 100644 benchmarks/__init__.mojo create mode 100644 benchmarks/mlp_benchmarks/__init__.mojo create mode 100644 benchmarks/mlp_benchmarks/mlp_func.mojo create mode 100644 benchmarks/mlp_benchmarks/mlp_imp.mojo create mode 100644 benchmarks/mlp_benchmarks/mlp_jit.mojo create mode 100644 benchmarks/random_benchmarks/__init__.mojo create mode 100644 benchmarks/random_benchmarks/foo_benchmark1.mojo create mode 100644 benchmarks/run_benchmarks.mojo create mode 100644 endia.mojopkg create mode 100644 endia/__init__.mojo create mode 100644 endia/_array/__init__.mojo create mode 100644 endia/_array/_array.mojo create mode 100644 endia/_array/reamde.md create mode 100644 endia/autograd/__init__.mojo create mode 100644 endia/autograd/functional.mojo create mode 100644 endia/autograd/reamde.md create mode 100644 endia/compile/__init__.mojo create mode 100644 endia/compile/callable.mojo create mode 100644 endia/compile/functional.mojo create mode 100644 endia/compile/fx.mojo create mode 100644 endia/compile/max_utils.mojo create mode 100644 endia/compile/python_utils.mojo create mode 100644 endia/compile/reamde.md create mode 100644 endia/fft/__init__.mojo create mode 100644 endia/fft/reamde.md create mode 100644 endia/functional/__init__.mojo create mode 100644 endia/functional/_utils.mojo create mode 100644 endia/functional/binary_ops/__init__.mojo create mode 100644 endia/functional/binary_ops/_utils.mojo create mode 100644 endia/functional/binary_ops/add_op.mojo create mode 100644 endia/functional/binary_ops/div_op.mojo create mode 100644 endia/functional/binary_ops/matmul_op.mojo create mode 100644 endia/functional/binary_ops/mul_op.mojo create mode 100644 endia/functional/binary_ops/pow_op.mojo create mode 100644 endia/functional/binary_ops/reamde.md create mode 100644 endia/functional/binary_ops/sub_op.mojo create mode 100644 endia/functional/comparison_ops/__init__.mojo create mode 100644 endia/functional/comparison_ops/_utils.mojo create mode 100644 endia/functional/comparison_ops/equal_op.mojo create mode 100644 endia/functional/comparison_ops/ge_zero_op.mojo create mode 100644 endia/functional/comparison_ops/greater_equal_op.mojo create mode 100644 endia/functional/comparison_ops/greater_op.mojo create mode 100644 endia/functional/comparison_ops/less_equal_op.mojo create mode 100644 endia/functional/comparison_ops/less_op.mojo create mode 100644 endia/functional/comparison_ops/not_equal_op.mojo create mode 100644 endia/functional/index_ops/__init__.mojo create mode 100644 endia/functional/index_ops/concat_op.mojo create mode 100644 endia/functional/index_ops/reamde.md create mode 100644 endia/functional/init_ops/__init__.mojo create mode 100644 endia/functional/init_ops/init_ops.mojo create mode 100644 endia/functional/init_ops/reamde.md create mode 100644 endia/functional/loss_ops/__init__.mojo create mode 100644 endia/functional/loss_ops/_utils.mojo create mode 100644 endia/functional/loss_ops/mse_op.mojo create mode 100644 endia/functional/loss_ops/reamde.md create mode 100644 endia/functional/reamde.md create mode 100644 endia/functional/reduce_ops/__init__.mojo create mode 100644 endia/functional/reduce_ops/_utils.mojo create mode 100644 endia/functional/reduce_ops/mean_op.mojo create mode 100644 endia/functional/reduce_ops/reamde.md create mode 100644 endia/functional/reduce_ops/reduce_add_op.mojo create mode 100644 endia/functional/reduce_ops/std_op.mojo create mode 100644 endia/functional/reduce_ops/sum_op.mojo create mode 100644 endia/functional/reduce_ops/variance_op.mojo create mode 100644 endia/functional/spacial_ops/__init__.mojo create mode 100644 endia/functional/spacial_ops/conv_op.mojo create mode 100644 endia/functional/spacial_ops/max_pool_op.mojo create mode 100644 endia/functional/test_.mojo create mode 100644 endia/functional/unary_ops/__init__.mojo create mode 100644 endia/functional/unary_ops/_utils.mojo create mode 100644 endia/functional/unary_ops/abs_op.mojo create mode 100644 endia/functional/unary_ops/acos_op.mojo create mode 100644 endia/functional/unary_ops/asin_op.mojo create mode 100644 endia/functional/unary_ops/atan_op.mojo create mode 100644 endia/functional/unary_ops/cos_op.mojo create mode 100644 endia/functional/unary_ops/cosh_op.mojo create mode 100644 endia/functional/unary_ops/exp_op.mojo create mode 100644 endia/functional/unary_ops/log_op.mojo create mode 100644 endia/functional/unary_ops/neg_op.mojo create mode 100644 endia/functional/unary_ops/reamde.md create mode 100644 endia/functional/unary_ops/reciprocal_op.mojo create mode 100644 endia/functional/unary_ops/relu_op.mojo create mode 100644 endia/functional/unary_ops/sigmoid_op.mojo create mode 100644 endia/functional/unary_ops/sign_op.mojo create mode 100644 endia/functional/unary_ops/sin_op.mojo create mode 100644 endia/functional/unary_ops/sinh_op.mojo create mode 100644 endia/functional/unary_ops/sqrt_op.mojo create mode 100644 endia/functional/unary_ops/square_op.mojo create mode 100644 endia/functional/unary_ops/tan_op.mojo create mode 100644 endia/functional/unary_ops/tanh_op.mojo create mode 100644 endia/functional/view_ops/__init__.mojo create mode 100644 endia/functional/view_ops/_utils.mojo create mode 100644 endia/functional/view_ops/array_slice_op.mojo create mode 100644 endia/functional/view_ops/as_strided_op.mojo create mode 100644 endia/functional/view_ops/detach_op.mojo create mode 100644 endia/functional/view_ops/expand_op.mojo create mode 100644 endia/functional/view_ops/imag_op.mojo create mode 100644 endia/functional/view_ops/pad_op.mojo create mode 100644 endia/functional/view_ops/permute_op.mojo create mode 100644 endia/functional/view_ops/real_op.mojo create mode 100644 endia/functional/view_ops/reamde.md create mode 100644 endia/functional/view_ops/squeeze_op.mojo create mode 100644 endia/functional/view_ops/unsqueeze_op.mojo create mode 100644 endia/functional/view_ops/view_as_imag_op.mojo create mode 100644 endia/functional/view_ops/view_as_real_op.mojo create mode 100644 endia/functional/view_ops/view_op.mojo create mode 100644 endia/linalg/__init__.mojo create mode 100644 endia/linalg/reamde.md create mode 100644 endia/nn/__init__.mojo create mode 100644 endia/nn/models/__init__.mojo create mode 100644 endia/nn/modules/__init__.mojo create mode 100644 endia/nn/modules/_mlp.mojo create mode 100644 endia/nn/reamde.md create mode 100644 endia/optim/__init__.mojo create mode 100644 endia/optim/adagrad.mojo create mode 100644 endia/optim/adam.mojo create mode 100644 endia/optim/reamde.md create mode 100644 endia/optim/rmsprop.mojo create mode 100644 endia/optim/sgd.mojo create mode 100644 endia/readme.md create mode 100644 endia/utils/__init__.mojo create mode 100644 endia/utils/_array_shape.mojo create mode 100644 endia/utils/_string_utils.mojo create mode 100644 endia/utils/_viz.mojo create mode 100644 endia/utils/aliases.mojo create mode 100644 endia/utils/array_conversions.mojo create mode 100644 endia/utils/general.mojo create mode 100644 endia/utils/reamde.md create mode 100644 examples/__init__.mojo create mode 100644 examples/readme.md create mode 100644 examples/run_examples.mojo create mode 100644 examples/simple_examples/__init__.mojo create mode 100644 examples/simple_examples/_example1.mojo create mode 100644 examples/simple_examples/_example2.mojo create mode 100644 examples/viz_examples/__init__.mojo create mode 100644 examples/viz_examples/simple_viz.mojo create mode 100644 requirements.txt create mode 100755 setup.sh create mode 100644 tests/__init__.mojo create mode 100644 tests/integration_tests/__init__.mojo create mode 100644 tests/integration_tests/random_function_tests.mojo create mode 100644 tests/integration_tests/test_foo_jit.mojo create mode 100644 tests/integration_tests/test_max_integration.mojo create mode 100644 tests/reamde.md create mode 100644 tests/run_tests.mojo create mode 100644 tests/test_endia/__init__.mojo create mode 100644 tests/test_endia/test_functional/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/test_add_op.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/test_div_op.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/test_matmul_op.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/test_mul_op.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/test_pow_op.mojo create mode 100644 tests/test_endia/test_functional/test_binary_ops/test_sub_op.mojo create mode 100644 tests/test_endia/test_functional/test_comparison_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_comparison_ops/test_ge_zero_op.mojo create mode 100644 tests/test_endia/test_functional/test_comparison_ops/test_greater_equal_op.mojo create mode 100644 tests/test_endia/test_functional/test_comparison_ops/test_greater_op.mojo create mode 100644 tests/test_endia/test_functional/test_comparison_ops/test_less_equal_op.mojo create mode 100644 tests/test_endia/test_functional/test_comparison_ops/test_less_op.mojo create mode 100644 tests/test_endia/test_functional/test_index_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_index_ops/test_concat_op.mojo create mode 100644 tests/test_endia/test_functional/test_init_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_init_ops/test_init_ops.mojo create mode 100644 tests/test_endia/test_functional/test_loss_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_loss_ops/test_mse_op.mojo create mode 100644 tests/test_endia/test_functional/test_reduce_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_reduce_ops/test_mean_op.mojo create mode 100644 tests/test_endia/test_functional/test_reduce_ops/test_reduce_add_op.mojo create mode 100644 tests/test_endia/test_functional/test_reduce_ops/test_std_op.mojo create mode 100644 tests/test_endia/test_functional/test_reduce_ops/test_variance_op.mojo create mode 100644 tests/test_endia/test_functional/test_spacial_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_spacial_ops/test_conv_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_abs_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_acos_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_asin_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_atan_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_cos_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_cosh_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_exp_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_log_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_neg_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_reciprocal_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_relu_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_sigmoid_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_sign_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_sin_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_sinh_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_sqrt_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_square_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_tan_op.mojo create mode 100644 tests/test_endia/test_functional/test_unary_ops/test_tanh_op.mojo create mode 100644 tests/test_endia/test_functional/test_utils.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/__init__.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_array_slice_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_as_strided_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_detach_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_expand_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_imag_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_pad_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_permute_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_real_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_squeeze_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_unsqueeze_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_view_as_imag_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_view_as_real_op.mojo create mode 100644 tests/test_endia/test_functional/test_view_ops/test_view_op.mojo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76b0417 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.vscode/ +main.mojo \ No newline at end of file diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..5a230d3 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,19 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +authors: +- family-names: "Fehrenbach" + given-names: "Tillmann" + orcid: "https://orcid.org/0009-0001-4831-9729" +title: "Endia - Scientific Computing in Mojo" +version: 24.7 +doi: 10.5281/zenodo.1234 +date-released: 2024-07-18 +url: "https://github.com/endia-org/Endia" +license: Apache-2.0 +keywords: + - "scientific computing" + - "Mojo" + - "compiler" + - "machine learning" +repository-code: "https://github.com/endia-org/Endia" +abstract: "Endia is an open-source project for scientific computing in Mojo, aiming to provide high-performance numerical methods and tools for researchers and developers." \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9e2d5f5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# Contributing Guide + +Thank you for your interest in contributing to our project! We use a nightly branch for ongoing development and merge into the main branch for major releases. Here are our guidelines: + +## Branch Structure + +- `main`: Stable branch for releases +- `nightly`: Active development branch + +## Development Workflow + +1. Fork the repository and clone it locally. +2. Create a new branch from `nightly` for your feature or bugfix: + ``` + git checkout nightly + git pull origin nightly + git checkout -b feature/your-feature-name + ``` +3. Make your changes and commit them with clear, concise commit messages. +4. Push your changes to your fork: + ``` + git push origin feature/your-feature-name + ``` +5. Open a pull request against the `nightly` branch. + +## Nightly Branch Best Practices + +- Always base your work on the latest `nightly` branch. +- Regularly sync your fork with the upstream `nightly` branch: + ``` + git checkout nightly + git fetch upstream + git merge upstream/nightly + git push origin nightly + ``` +- Keep your feature branches short-lived and focused. +- Rebase your feature branch onto `nightly` before submitting a pull request: + ``` + git checkout feature/your-feature-name + git rebase nightly + ``` + +## Reporting Issues + +- Use the issue tracker for bugs or feature requests. +- Check if the same issue already exists before creating a new one. +- Include as much information as possible in your issue report. + +## Submitting Pull Requests + +- Ensure your code adheres to our coding standards. +- Include unit tests for new features or bug fixes. +- Make sure all tests pass before submitting a pull request. +- Include a clear and detailed description of the changes. +- Link relevant issues in your pull request description. + +## Code Review Process + +- At least one core maintainer will review your pull request. +- Address any comments or requested changes promptly. +- Once approved, a maintainer will merge your pull request into the `nightly` branch. + +## Release Process + +- Periodically, we will merge the `nightly` branch into `main` for a new release. +- Contributors should not directly merge or push to the `main` branch. + +We appreciate your contributions and look forward to seeing your pull requests! diff --git a/README.md b/README.md new file mode 100644 index 0000000..f845ef6 --- /dev/null +++ b/README.md @@ -0,0 +1,150 @@ +
+ Title Image +
+ +### + +**Endia** is a dynamic Array library for Accelerated Scientific Computing. It offers: + +- **Automatic differentiation**: Compute derivatives of arbitrary order. +- **Complex number support:** Use Endia for advanced scientific applications. +- **Dual API:** Choose between a PyTorch-like imperative or a JAX-like functional interface. +- **JIT Compilation:** Leverage MAX to speed up training and inference. + +
+ + [Website] | [Docs] | [Getting Started] | [Our Mission] + + [Website]: https://endia.org + [Docs]: https://endia.org + [Getting Started]: #getting-started + [Our Mission]: #our-mission + +
+ +## Installation + +1. **Install [Mojo and MAX](https://docs.modular.com/max/install)** 🔥 (v24.4) + +2. **Clone the repository**: + + ```bash + git clone https://github.com/endia-org/Endia.git + cd Endia + ``` + +3. **Set Up Environment**: + + ```bash + chmod +x setup.sh + ./setup.sh + ``` + + Required dependencies: `torch`, `numpy`, `graphviz`. These will be installed automatically by the setup script. + +## Getting Started + +In this guide, we'll demonstrate how to compute the **value**, **gradient**, and the **Hessian** (i.e. the second-order derivative) of a simple function. First by using Endia's Pytorch-like API and then by using a more Jax-like functional API. In both examples, we initially define a function **foo** that takes an array and returns the sum of the squares of its elements. + +### The **Pytorch** way + + +

+ + Endia Logo + +

+ +When using Endia's imperative (PyTorch-like) interface, we compute the gradient of a function by calling the **backward** method on the function's output. This imperative style requires explicit management of the computational graph, including setting `requires_grad=True` for the input arrays (i.e. leaf nodes) and using `retain_graph=True` in the backward method when computing higher-order derivatives. + +```python +import endia as nd + +# Define the function +def foo(x: nd.Array) -> nd.Array: + return nd.sum(x ** 2) + +# Initialize variable - requires_grad=True needed! +x = nd.array('[1.0, 2.0, 3.0]', requires_grad=True) + +# Compute result, first and second order derivatives +y = foo(x) +y.backward(retain_graph=True) +dy_dx = x.grad() +d2y_dx2 = nd.grad(outs=dy_dx, inputs=x)[nd.Array] + +# Print results +print(y) # out: [14.0] +print(dy_dx) # out: [2.0, 4.0, 6.0] +print(d2y_dx2) # out: [2.0, 2.0, 2.0] +``` + +### The **JAX** way + + +

+ + Endia Logo + +

+ +When using Endia's functional (JAX-like) interface, the computational graph is handled implicitly. By calling the `grad` function on foo, we create a `Callable` which computes the gradient. This `Callable` can be passed to the `grad` function again to compute higher-order derivatives. + +```python +import endia as nd + +# Define the function +def foo(x: nd.Array) -> nd.Array: + return nd.sum(x ** 2) + +# Create callables for the jacobian and hessian +foo_jac = nd.grad(foo) +foo_hes = nd.grad(foo_jac) + +# Initialize variable - no requires_grad=True needed +x = nd.array('[1.0, 2.0, 3.0]') + +# Compute result and derivatives +y = foo(x) +dy_dx = foo_jac(x)[nd.Array] +dy2_dx2 = foo_hes(x)[nd.Array] + +# Print results +print(y) # out: [14.0] +print(dy_dx) # out: [2.0, 4.0, 6.0] +print(dy2_dx2) # out: [2.0, 2.0, 2.0] +``` + +*And there is so much more! Endia can handle complex valued functions, can perform both forward and reverse-mode automatic differentiation, it even has a builtin JIT compiler to make things go brrr. Explore the full **list of features** in the [documentation](https://endia.org).* + +## Our Mission + +- 🧠 **Advance AI & Scientific Computing:** Push boundaries with clear and understandable algorithms +- 🚀 **Mojo-Powered Clarity:** High-performance open-source code that remains readable and pythonic through and through +- 📐 **Explainability:** Prioritize clarity and educational value over exhaustive features + + + +## Contributing + +Contributions to Endia are welcome! If you'd like to contribute, please follow the contribution guidelines in the [CONTRIBUTING.md](https://github.com/endia-org/Endia/blob/main/CONTRIBUTING.md) file in the repository. + +## Citation + +If you use Endia in your research or project, please cite it as follows: + +```bibtex +@software{Fehrenbach_Endia_-_Scientific_2024, +author = {Fehrenbach, Tillmann}, +license = {Apache-2.0}, +month = jul, +title = {{Endia - Scientific Computing in Mojo}}, +url = {https://github.com/endia-org/Endia}, +version = {24.4.0}, +year = {2024} +} +``` + +## License + +Endia is licensed under the [Apache-2.0 license](https://github.com/endia-org/Endia?tab=Apache-2.0-1-ov-file). diff --git a/assets/example1_graph.png b/assets/example1_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..eaf2c39cdfabb5df3e2d24d33fdb66efb4a3b68b GIT binary patch literal 32749 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 LDD_3+h5!EpOlG=? literal 0 HcmV?d00001 diff --git a/assets/jax_logo.png b/assets/jax_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..535644839473c33aacfaa3dbb6c63135434b246f GIT binary patch literal 95861 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 literal 0 HcmV?d00001 diff --git a/assets/mlp_imp_graph.png b/assets/mlp_imp_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..df880dca0baf30f8af756271572f301debacf6e9 GIT binary patch literal 290204 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%0D^dT&5{L3`?!jK{RErsN0DW$z3 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 D!H+@z literal 0 HcmV?d00001 diff --git a/assets/pytorch_logo.png b/assets/pytorch_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7398bce842b13a96590353398a6360a94937acb0 GIT binary patch literal 57895 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 F{{cv4yqW+2 literal 0 HcmV?d00001 diff --git a/assets/titleimage.png b/assets/titleimage.png new file mode 100644 index 0000000000000000000000000000000000000000..f8f5f0dd210e0debb0c17900747c58e7dcc8c611 GIT binary patch literal 170583 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°mW7-gOtKgU%ifUW5V18 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 WAe>v6aQbJ#R==`8;xjFWO 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

Nboz{eBPqmmOjef3p0$5{*qM1 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 AmH+?% literal 0 HcmV?d00001 diff --git a/assets/titleimage2.png b/assets/titleimage2.png new file mode 100644 index 0000000000000000000000000000000000000000..b9816fecd527c9605ddf1ef523eee0ba142c6c45 GIT binary patch literal 131352 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� z0kS>X0$Eat?v5YmJkn&)d!>+3A4t&zsxxyRRXduWP{-v6@s`nx_N6dBRUp~F+;2?{ z`NO8N7GVCYo8N;=0Ec1r7W)#6pCoTY-Arb_AHb&WdlqFD#sfgOqu z^dH*5UV9gD4I5Dhc^8=}=n41(J2p&;`W)huP8|{fH>gyRjiawi4HQMWfck~k_ z%lUEjFPmQ0lQVBU<)!Kr#Yy25UgAu+2N;4s8u#fP4KmdsvBXnzA$MiiU8emGm{FQo zR9VL3laUSoF~MK-<&!ay_M}+EiH89Cpf_+o1`8Bj^H9v~EPy;6Bpb+YftDgpO)x9> zhW9{121ru*AO+=u9_sPob$dRK!t7a5~Y-yJ3! zcSFyjygZNbZ)yg1ypIaB+wmYOR{>iHpta(#Zz(U)_NyE-Fxf3h3XwPnS1dHw0z6wW zcE-4j$9cOY^|Pc1uTfIKQOSN9EO0%xKU(%0;E8uoRGQ^d#eA`w9g0U9103Bk=UMc$ z?LCAEsHKtyuD@{77Jhy*cITPhudp1d0CagHUIzyN4hC{STMf`q)LA3eW2&Ob1C9xl-)7y6$VU3u*vJuotqg2agwP6DpXA!B~D#(AfHWo*C3h zlNrRGJ8MaO?6HhVN4HDdW0?P-lhK|K^MpM|cegfI*Z_qzAfXUcOrxZYR=Y>PYSn}I zPYPbl>7=B3Q1jmCb2t841sB=X_FBTIku$odvlF&^@oLdxOPP9ZzY_jey#&zf zNL=*E<)xr$o1KP}PVmMOsuWH!4|DTwQPP!SzPpjT&7fTK=Fz)){CO#5ubhkI$0_UEr9NOypp-LdZoDJ;UufN*|SA zHr!@wgj?KHuZSIjEco)&Np2$QL~1+wS#e!pvki?(OaC!x5&zlg$2P-^Pw=Uf=1bofDXu4$`~4d?+QY{ZfqKM%&rUrw#1_&A4Its;*78?F+kPIIlIT`I`QqH%?8}D}d@V04igU?{B+Uc*5 z_ls|!UjvSo3ZF(}pRY#2X63OrwLrXYupw}GIq8QW`&E(`%zX*F`M4j~Vq;>N&TlCx z=t%GN6w!)O2+c*_A1?UcI{D*VJb7;Y?Y&YwfDI-OBB^J0YpbSN6wUsRt$|0&PFd|- z2!Uh>T8xUC6_FOc{67p1Y6>JP$|W1w07Cvx)d6dPT7Xk1!Mkg>0nPo7rN2lfGaX3U zd5-c;|Cjo{ZEyPkI5gB7ym9A0QG@WC{9mf!xAcEy)4z@9xAFWbf#1mUE6Dwg`@al$ z|2K_i<}sAjnGWMDdl2g%iHdQCr^ivhtft<1Z{bI5lQ)Lmy|?CdoM-LsUQ-BuC1mhp zXA4x0v19LoxbV})4zvxm^tP$=b_SnZkAf0JbMI+uifGLHc%UuxLy}{Kj>wXofYc)Q zGnu?poEd!%PH9g&I4?∋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 R4uF4GrIr3pzif2p{{b9kF>e3> literal 0 HcmV?d00001 diff --git a/assets/titleimage3.png b/assets/titleimage3.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc920a6397930b2ee9601b584d31ad7fe903b4f GIT binary patch literal 93435 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 literal 0 HcmV?d00001 diff --git a/benchmarks/__init__.mojo b/benchmarks/__init__.mojo new file mode 100644 index 0000000..6195de4 --- /dev/null +++ b/benchmarks/__init__.mojo @@ -0,0 +1,2 @@ +from .random_benchmarks import * +from .mlp_benchmarks import * diff --git a/benchmarks/mlp_benchmarks/__init__.mojo b/benchmarks/mlp_benchmarks/__init__.mojo new file mode 100644 index 0000000..14b7587 --- /dev/null +++ b/benchmarks/mlp_benchmarks/__init__.mojo @@ -0,0 +1,3 @@ +from .mlp_imp import * +from .mlp_func import * +from .mlp_jit import * diff --git a/benchmarks/mlp_benchmarks/mlp_func.mojo b/benchmarks/mlp_benchmarks/mlp_func.mojo new file mode 100644 index 0000000..7bdbfec --- /dev/null +++ b/benchmarks/mlp_benchmarks/mlp_func.mojo @@ -0,0 +1,137 @@ +import endia as nd +import endia.nn as nn +import endia.optim as optim +from endia.utils import dtype +import math +from time import now + + +def fill_sin_(inout curr: nd.Array, arg: nd.Array): + """ + Inplace fill the current array with normalized sin values. + """ + for i in range(arg.size()): + curr.store(i, math.sin(50 * (arg.load(i) + 1) / 2)) + + +def setup_params( + x: nd.Array, y: nd.Array, hidden_dims: List[Int] +) -> List[nd.Array]: + """ + Setup the parameters for the MLP model as a list of arrays. + """ + params = List[nd.Array]() + params.append(x) + params.append(y) + num_layers = len(hidden_dims) - 1 + for i in range(num_layers): + weight = nd.rand_he_normal( + List(hidden_dims[i], hidden_dims[i + 1]), + fan_in=hidden_dims[i], + ) + bias = nd.rand_he_normal( + List(hidden_dims[i + 1]), + fan_in=hidden_dims[i], + ) + params.append(weight) + params.append(bias) + return params + + +def benchmark_mlp_func(): + print("\nRunning MLP benchmark in a functional eager mode with grad:") + + # define the forward function + def fwd(args: List[nd.Array]) -> nd.Array: + target = args[1] + pred = nn.mlp(args) + loss = nd.mse(pred, target) + return loss + + # define the training loop + batch_size = 128 + lr = 0.001 + beta1 = 0.9 + beta2 = 0.999 + eps = 1e-8 + num_iters = 1000 + every = 1000 + avg_loss = SIMD[dtype, 1](0) + + # setup input, target, params and velocity + x = nd.Array(List(batch_size, 1)) + y = nd.Array(List(batch_size, 1)) + hidden_dims = List(1, 32, 64, 128, 128, 128, 64, 32, 1) + args = setup_params(x, y, hidden_dims) + m = List[nd.Array]() + v = List[nd.Array]() + for i in range(len(args)): + m.append(nd.zeros_like(args[i])) + v.append(nd.zeros_like(args[i])) + + # setup fwd and grad function as one call + value_and_grad_fwd = nd.value_and_grad(fwd) + + # setup time variables + start = Float64(0) + end = Float64(0) + time_all = Float64(0) + fwd_start = Float64(0) + fwd_end = Float64(0) + time_fwd = Float64(0) + grad_start = Float64(0) + grad_end = Float64(0) + time_grad = Float64(0) + optim_start = Float64(0) + optim_end = Float64(0) + time_optim = Float64(0) + + # training loop + for t in range(1, num_iters + 1): + start = now() + + # fill input and target inplace + nd.randu_(args[0]) + fill_sin_(args[1], args[0]) + + # compute loss + fwd_start = now() + value_and_grad = value_and_grad_fwd(args)[List[List[nd.Array]]] + fwd_end = now() + + loss = value_and_grad[0][0] + avg_loss += loss.load(0) + args_grads = value_and_grad[1] + + # update weights and biases inplace + optim_start = now() + for i in range(2, len(args_grads)): + # implement adam with above variables as in the step function above + m[i] = beta1 * m[i] + (1 - beta1) * args_grads[i] + v[i] = beta2 * v[i] + (1 - beta2) * args_grads[i] * args_grads[i] + m_hat = m[i] / (1 - beta1**t) + v_hat = v[i] / (1 - beta2**t) + args[i] -= lr * m_hat / (nd.sqrt(v_hat) + eps) + + optim_end = now() + end = now() + + time_fwd += (fwd_end - fwd_start) / 1000000000 + time_optim += (optim_end - optim_start) / 1000000000 + time_all += (end - start) / 1000000000 + + # print loss + if t % every == 0: + print("Iter: ", t, " Loss: ", avg_loss / every) + avg_loss = 0 + print( + "Total: ", + time_all / every, + " Value_and_Grad: ", + time_fwd / every, + " Optim: ", + time_optim / every, + ) + time_all = 0 + time_fwd = 0 + time_optim = 0 diff --git a/benchmarks/mlp_benchmarks/mlp_imp.mojo b/benchmarks/mlp_benchmarks/mlp_imp.mojo new file mode 100644 index 0000000..820ef31 --- /dev/null +++ b/benchmarks/mlp_benchmarks/mlp_imp.mojo @@ -0,0 +1,97 @@ +import endia as nd +import endia.nn as nn +import endia.optim as optim + +from time import now + + +def fill_sin_(inout curr: nd.Array, arg: nd.Array): + for i in range(arg.size()): + curr.store(i, math.sin(50 * (arg.load(i) + 1) / 2)) + + +def benchmark_mlp_imp(): + print("\nRunning MLP benchmark in eager mode.") + + batch_size = 128 + num_iters = 1000 + every = 1000 + + avg_loss = SIMD[dtype, 1](0) + x = nd.Array(List(batch_size, 1)) + y = nd.Array(List(batch_size, 1)) + mlp = nn.MLP( + List(1, 32, 64, 128, 128, 128, 64, 32, 1), compute_backward=True + ) + optimizer = optim.Adam( + mlp.params(), lr=0.001, beta1=0.9, beta2=0.999, eps=1e-8 + ) + + fwd_time = Float64(0) + bwd_time = Float64(0) + opt_time = Float64(0) + end_time = Float64(0) + + for i in range(1, num_iters + 1): + start = now() + + start_init = now() + nd.randu_(x, min=0, max=1) + fill_sin_(y, x) + end_init = now() + + start_fwd = now() + pred = mlp.forward(x) + loss = nd.mse(pred, y) + end_fwd = now() + + if i == 1: + nd.utils.visualize_graph(loss, "./assets/mlp_imp_graph") + + avg_loss += loss.load(0) + + start_bwd = now() + loss.backward() + end_bwd = now() + + start_opt = now() + optimizer.step() + end_opt = now() + + zero_grad_time_start = now() + loss.zero_grad() + zero_grad_time_end = now() + + end = now() + + fwd_time += (end_fwd - start_fwd) / 1000000000 + bwd_time += (end_bwd - start_bwd) / 1000000000 + opt_time += (end_opt - start_opt) / 1000000000 + end_time += (end - start) / 1000000000 + + if i % every == 0: + print("Iter: ", i, " Loss: ", avg_loss / every) + avg_loss = 0 + + fwd_time /= every + bwd_time /= every + opt_time /= every + end_time /= every + + print( + "Total:", + end_time, + "Fwd: ", + fwd_time, + " Bwd: ", + bwd_time, + " Optim: ", + opt_time, + ) + + init_time = 0 + fwd_time = 0 + bwd_time = 0 + opt_time = 0 + zero_grad_time = 0 + end_time = 0 diff --git a/benchmarks/mlp_benchmarks/mlp_jit.mojo b/benchmarks/mlp_benchmarks/mlp_jit.mojo new file mode 100644 index 0000000..80361e2 --- /dev/null +++ b/benchmarks/mlp_benchmarks/mlp_jit.mojo @@ -0,0 +1,137 @@ +import endia as nd +import endia.nn as nn +import endia.optim as optim +from endia.utils import dtype +import math +from time import now + + +def fill_sin_(inout curr: nd.Array, arg: nd.Array): + """ + Inplace fill the current array with normalized sin values. + """ + for i in range(arg.size()): + curr.store(i, math.sin(50 * (arg.load(i) + 1) / 2)) + + +def setup_params( + x: nd.Array, y: nd.Array, hidden_dims: List[Int] +) -> List[nd.Array]: + """ + Setup the parameters for the MLP model as a list of arrays. + """ + params = List[nd.Array]() + params.append(x) + params.append(y) + num_layers = len(hidden_dims) - 1 + for i in range(num_layers): + weight = nd.rand_he_normal( + List(hidden_dims[i], hidden_dims[i + 1]), + fan_in=hidden_dims[i], + ) + bias = nd.rand_he_normal( + List(hidden_dims[i + 1]), + fan_in=hidden_dims[i], + ) + params.append(weight) + params.append(bias) + return params + + +def benchmark_mlp_jit(): + print("\nRunning MLP benchmark with MAX JIT compilation:") + + # define the forward function + def fwd(args: List[nd.Array]) -> nd.Array: + target = args[1] + pred = nn.mlp(args) + loss = nd.mse(pred, target) + return loss + + # define the training loop + batch_size = 128 + lr = 0.001 + beta1 = 0.9 + beta2 = 0.999 + eps = 1e-8 + num_iters = 1000 + every = 1000 + avg_loss = SIMD[dtype, 1](0) + + # setup input, target, params and velocity + x = nd.Array(List(batch_size, 1)) + y = nd.Array(List(batch_size, 1)) + hidden_dims = List(1, 32, 64, 128, 128, 128, 64, 32, 1) + args = setup_params(x, y, hidden_dims) + m = List[nd.Array]() + v = List[nd.Array]() + for i in range(len(args)): + m.append(nd.zeros_like(args[i])) + v.append(nd.zeros_like(args[i])) + + # setup fwd and grad function as one call + value_and_grad_fwd = nd.jit(nd.value_and_grad(fwd), compile_with_MAX=True) + + # setup time variables + start = Float64(0) + end = Float64(0) + time_all = Float64(0) + fwd_start = Float64(0) + fwd_end = Float64(0) + time_fwd = Float64(0) + grad_start = Float64(0) + grad_end = Float64(0) + time_grad = Float64(0) + optim_start = Float64(0) + optim_end = Float64(0) + time_optim = Float64(0) + + # training loop + for t in range(1, num_iters + 1): + start = now() + + # fill input and target inplace + nd.randu_(args[0]) + fill_sin_(args[1], args[0]) + + # compute loss + fwd_start = now() + value_and_grad = value_and_grad_fwd(args)[List[List[nd.Array]]] + fwd_end = now() + + loss = value_and_grad[0][0] + avg_loss += loss.load(0) + args_grads = value_and_grad[1] + + # update weights and biases inplace + optim_start = now() + for i in range(2, len(args_grads)): + # implement adam with above variables as in the step function above + m[i] = beta1 * m[i] + (1 - beta1) * args_grads[i] + v[i] = beta2 * v[i] + (1 - beta2) * args_grads[i] * args_grads[i] + m_hat = m[i] / (1 - beta1**t) + v_hat = v[i] / (1 - beta2**t) + args[i] -= lr * m_hat / (nd.sqrt(v_hat) + eps) + + optim_end = now() + end = now() + + time_fwd += (fwd_end - fwd_start) / 1000000000 + time_optim += (optim_end - optim_start) / 1000000000 + time_all += (end - start) / 1000000000 + + # print loss + if t % every == 0: + print("Iter: ", t, " Loss: ", avg_loss / every) + avg_loss = 0 + print( + "Total: ", + time_all / every, + " Value_and_Grad: ", + time_fwd / every, + " Optim: ", + time_optim / every, + ) + time_all = 0 + time_fwd = 0 + time_optim = 0 diff --git a/benchmarks/random_benchmarks/__init__.mojo b/benchmarks/random_benchmarks/__init__.mojo new file mode 100644 index 0000000..6441cc4 --- /dev/null +++ b/benchmarks/random_benchmarks/__init__.mojo @@ -0,0 +1 @@ +from .foo_benchmark1 import * diff --git a/benchmarks/random_benchmarks/foo_benchmark1.mojo b/benchmarks/random_benchmarks/foo_benchmark1.mojo new file mode 100644 index 0000000..52429ac --- /dev/null +++ b/benchmarks/random_benchmarks/foo_benchmark1.mojo @@ -0,0 +1,64 @@ +import endia as nd +from python import Python +from time import now + + +def foo(args: List[nd.Array]) -> nd.Array: + a = args[0] + b = args[1] + c = args[2] + return nd.sum( + nd.mul( + nd.cos(nd.sin(nd.cos(nd.cos(nd.add(nd.matmul(a, b), c))))), + nd.matmul(a, b), + ) + ) + + +def benchmark_foo_grad( + msg: String = "foo", warmup_runs: Int = 5, num_runs: Int = 10 +): + # args initialization + requires_grad = True + a = nd.arange(List(300, 400), requires_grad) + b = nd.arange(List(2, 400, 500), requires_grad) + c = nd.arange(List(2, 300, 500), requires_grad) + args = List(a, b, c) + + # warm up + for _ in range(warmup_runs): + res = foo(args) + res.backward() + res.zero_grad() + + # functional calls + total_time_forward = 0 + total_time_backward = 0 + for _ in range(num_runs): + start = now() + res = foo(args) + end = now() + + # backward pass + start2 = now() + res.backward() + end2 = now() + + # zero the gradients in the computation graph + res.zero_grad() + + total_time_forward += end - start + total_time_backward += end2 - start2 + + print( + "\033[36mBenchmark:\033[0m", + msg, + "forward:", + (total_time_forward / num_runs) / 1000000000, + ) + print( + " ", + msg, + "backward:", + (total_time_backward / num_runs) / 1000000000, + ) diff --git a/benchmarks/run_benchmarks.mojo b/benchmarks/run_benchmarks.mojo new file mode 100644 index 0000000..153fb8e --- /dev/null +++ b/benchmarks/run_benchmarks.mojo @@ -0,0 +1,8 @@ +from benchmarks import * + + +def run_benchmarks(): + benchmark_foo_grad() + benchmark_mlp_imp() + benchmark_mlp_func() + benchmark_mlp_jit() diff --git a/endia.mojopkg b/endia.mojopkg new file mode 100644 index 0000000000000000000000000000000000000000..819ec1ae89591186a405eb24c7c9c8765c2a057f GIT binary patch literal 3567507 zcmdqK4SZZzbua4kvFB(cYbK+KXCe=lt~HS+(Ilf*0*Odm`C=96AvN+38zvX0h@yb< zFt0Kwpj?!q6s1u>T+0vTqFkIZ6jQ{lDe6NM^;Q&7L^FMui+DAydNHlI*J+g(B@s7v zQCjmuegFU3=bV|5oj@pkUuU%US!b`c*IIk+wLi~??)>E+9Id?bmtTMM7w^dYLgp9l zedl}k7>`5@6|9Wxt3L2n!G|9C$mvHP zd;F8C;?tk~-0y!e82rO8fA#AX!9V-vx4%=V{_1;{{blntN6m>ABi<2>$Kw_8ibOPF zeI;D6`-ma|sSZvA{UaU^OF~@Gelh?}76ziCBFVfSMOa0EO@konOx&1Cg*(FOBV8R` zE#YuWI34af5)RiMi6RPzqqR7~IO`)^+u=fmQ&$0WA>@ckj&wSaNOVPOqg`Fea93?Q znkGd$4X)`#v@6|}0v-v`zAj+WT}j|TRGXw!fXQ@IZMv%~0r00fkSW@9G+`K>_k(_I56A*(V<>4UqSS|E~!fB>4YoDvd5h$5R=?ub3vIrhkEA&5Uz3uIGQTe_>Q1NQIhN${$#CEa(ZuStF_eQkYh zsGByR$)+#O1pJ!%TCNkA+R=3=-E{I9bW>q5{muUWH1^!P>T#Vv3zanr7jLz?SL zoQv%%T9LL7+Tq-%eX^w#?(x#;vvg(p9lWSO?Ndn3uDi*XenCD>ZOqh#mMJak-oEsa zj*gDLrnaUIaOy~>AR5Afr>FH1pko^+LWyKFo`}cUK}!snU3CHp(P%tcAu#}?SHzpp z#UVWrudPLTI*tx7N(_5CuppK(IP`_XU@NSJid>59s<5@goT&cO~L?@scG@9K*SbOnQ(E0D8kB_#GjZ zggiwPebM;ceKhFZyd)WUk`Sqh_}y~iMIY#SuH}g^PCdtF{ZPJ_oQbeqUVUK+u=y z1B_bMl}o8o-=biTs~!!Q6f$f23CvD7L-CHd2fW;KZ9K&+65*WG`BOI0WDp_n( zq`0La5>q6cpau(rX__u3%8vASic`7-A{15HFDugfYibe`+~e9)*aD_HUMcjIBxp3J zY`A2xSUfp2rZ}ch*eF30`bRv>`KKIENEGw0Xg^;jnIRvLK+M)~m}x8cKii zBrH&R;5v;zSO`BxFL^X2lK6QY8Aw6zRWP#_sX#Bf{=pfo%$PY}#i3!$oNF0sB~I3+ z1Se4uSV*j`t)Q>F_LsAWbN%8P(dlF&+=QaW6G`|c+?OV%jp@m#2_)l!DLQLX8#ft_ z*8<^Q_#Tq16(i92r~&!uY_&-qo*hvOR1pXD6qu)CGeMl#9yD$p5b{8&5o#m=&ZP(F z;4(t~GGi82%Mk^@R$sdODbD|CfFyw2KkqE`;3d~`7MRI}D>OBs+Z{;@MqvW4Ng_y8W2Oe_U*l#&d%k~u&zDYZz0O46i=F9R!OfFzy$ zdfZ(K)RC*9o`md@fr05o7Z=l)ozVoItj`F5AeEk8}b@=5Wfrhj_5+Aa{RZ76cc zYPTq_fG<`6sR=0sa+86_i69Sp!gVW#$+{l>OuqE{bQfJxoLv`^SEQl*6y)Ixh<{$X zr(aQxcp|jo*Fn6rY@NMW*PoG5p)x#;URv2Y_6tPbpZ5sl1}n zn@SGQGp9rZTn;iUmk`Q@5ctkgguhOj>zGAE0KvfPP{hT#Hr;*r8Ce3&Sj(mAl143A z(wF(?W+>za zLOUk@=ajD5Xn`!-PY?}q79@^d$n(Tfr-QaGi|cbMAd4iuloFcEvz}W)Of1p0m;;Ub zlbP#+cwBZXOZ$qAWoF<`4#X{)PqY#L(N}bKTsCQp%u{hmJ+LrBVpB4VRhul_upW?A zu`s6)%)CH>?p?-x6pPaUX*Zm*0Uvy`UHd;@Jj09A1Dut zq>H6zCH}+-s&X=ggL+9a0qHU@XOn~?1Qrk2nM#2WKV;&3Ru0g}q4{B6D^pvapI${L z#YV-oRa9{(hL(n93_%Ka#pA>T9r1#20VxPgP()OeDj*pM6Vhlpi6O@;CeSXarj#p9 z%@|c#A+e4Mq%L(4TfzDI@=B+8v7E0TiH=3lE-GL1UFk1=DYg4EM0BerUF38diwKL;#jisg@+1 zI?;j~XGI6w8gn7mfVbHK_wSGez(YhmM3XhiPbeP>$NfK@EVd(6;vqIA{YOFZ@M)gN zUnF613?IhdBa(VD9DYFligd@WXHT>PTY8D;gCq(^?{fit^`MLy$rKtreo4r3&xt5* z#l@q^CZ=eR7<3gR;#mlRCkG4?EI#5|VqLFb3dles8QIIAR3Hc=1G;MR5M!`n@h8$K zk?i8pCQ3mdt#Cj@dK{7{QYDWkhD-!SLS_~c^bv%y;)`ONEE-LLH%>^#pH@gjh-TCf zN1R%+mEiE~!c6!B3m|a@mISyUQ;~-Vo~8+q=+gp1R*ys*5`;)Y%WE{bIqU1^<2O}%F1!y>BWb40n<03@%F;OuQ7f zBfo-6XzzlF$b?3Qapi&uT9#;nbf!o(xM$BVOVdSF(GkURRi&Pq+QZ_Ki9A^JBD1iR zz(P+*6rIG;#a&RHV8D#z!vg8wZi=6t;QA~?w)Ql-kA~b*i(pRyL1MZ@k^;T!%G9cm zU1+@G%b6)|UQl|}NG!V2>7{v@8SR2CoPU}pdJM|Kg?0|l1jI^W(Ft_5NR(3#fDY}^ zxcA5Iou_#8p>XsecUXy{muO;F0be_f8i8MYMB?yiIr%Xxr2jyn6G=g^Xb90DDw(5< zj>6#r%*H1}if)F|7O#ms9M1^Xo+QbQPF_d+Zhc@a|A1;Ge^7`AQY&afM566UZ+OHY z$p)pTQyv%8E2q)%Lvj2eaxdlV3g>Q7ya_X4obdDl>3S ziX~9*-Mr()YB0m~h>Eorn3_q(HWnQd3+n2LVPPn-m=|XY*N85*3j9_M%tm;Ip(WO^ zca3ugyjBOC_>-$HNd-uNPZuRl!;KK=slp@rC=#G2gJ75tj-Es)933dX4mj~AS6z|{ zkU&c~AuN%*;C3PftSCtzKLaPS)l;`pPP%Aax~P7MrQj?rhaV_)IxOM~rDW-)(BM`m zp;!xfe-b+=6NR4_Sxxvcxs;!btUo84c_n>O<#ajYC>aWiSc01vkE85fl@Q0vlL*&6 zfRrxIcZFTWVu`xq_;bC$FCixguDRj(IKWBk;fXJi`Lg{$y8!*RRC(9u@c_(E;Rsrz zlAc!=SPBi}i1Yu8S0!62{(PU^)k?)@i+mRq<=GJJ09x{Lml;@@^ycdnXIBk+9RmzT zla*>BS8O@Dzj*Q1v)e|j&%2?OUh7N0SMabNc4)!KHBgznKG`UFz}s?^4UW zoT9irz;*2Va=4%m@j2*T|1lWyEd|l8Fa@^+Vjb{MaTeGJwI^uvIEc9D={40Jx z9$72t%3h+A-qmOSOqZD8Vy??!9ZzmvZ&;VnlS9{O-7$FT>ls3!%e@{1jl89XJF%uE z+zAcMBKDCJliivlKw~pJF5;S8i@e<2(zU(ZOb{t$@omECeCfDdGK0_?FNOI&a~I|X z(j(%sXd1)Pyn%I z#;4iD@lbFsc4RFo4k8{bs~2zP$|d@X{(19TIlGax0v%!Smm;tjyFr~$NG`s%jq=KEb3BmF(%xU{Et37EU4~!EX}d>Mcf`_zASn(7K*zP2 z2t%aDie$VAn`)%sa3aG7?zEsB*kxmioMjvV3^LHxk{EYAIJmeJ}yHG05}li z{v%2a4}incW;6*76do}HBEBue7oOm~$kM_@TvgB}i9`o4qo1dGFc>oO}s~13q* z4aMkII-QTEh+;IBo8}hBWfxD;TD2Mn-qeZA8Mly;KvKXKnwW=6frlRwFctcnCZwcr zzNq+(ys|lGZ@J22!km_ZijwDY~r&_)!K>`#`yIrCpnUb2P zO7a$k6d4+J@Cvl7WQa_p;GwA~EGP$c0Rm0|fNw&G)Zth|VFc zvW40sGp`6Sy@QwT2?-ER9&F}msd%^C!loo*{h|N}nt3gKxP`pjgGGiEjEhJBH!8|% zO~X2#d7**J6ctn8N2S1z*@>s4iK6r@R|v(*(dVAE0omIY4slCx(v=E7p{vv;J30gs zzv-YX2od+CFG=mv+B#iMY`Q=YDRqXrfhW<)q;Fy6>pGR})K{Y0V9H|QG!JCcphtb-Fn2c#;Sl>RlJ{Ngh%Vngi2QdcpwkZGDxX3|n zlN3d`A%?$C0uzqw80x`g3r7du=&IG5ClbfQ+(^;)G&vov#l({Ve;tf^aMgnEA>a=$ z2J+=VH&o#LkD@;*4>+ABHwZ1ZNlP@0jxLqr8O_u`@E%JXe>_2o2&XtI!1JfU3d~OX zktDbeg}GQgnfE!O<*_+%Uj~1rKkmlp`zeHkN^j7}l#3uXE3^UK0^@N4*5RX6;CfM* zg%)Q(-52Sp7u@c;yVzHJ&k=6Sgp||d!N>*itbv!6sReuy^e7RGyga7~x;cF*04PI< zg}_a??#Uwn@+5v?Mh_r2gPXx6L4rWwU9265M3Q&L3IU-1SHxeN4L1;fE`MN5eI)#B z4B@T?5Bh%qYGRYbE2C^%0;XHoBqT;+9C!>SOsd5y3!^Rl!@zFA=OJL^7 zNtT!FoyiVI8v@>OW-6GHE51}iA(&#yJc8?(L=%Wf-@+`2FynxB6i=N*4r1g^#gPy1 z@g`GE;DImP@IZ_?4UNT|%*?4$3#Mu;1jdgRe0PQO<`z=4;E%=!+!1X#B)Z7NjH-4p zx%3Le;IBi=Axz{Bc?LL5QaOA-p_y?w8Fi%XNQ?a1j&vRAIMUM7A-}esmL5s(X-ngK zF>O6}A3B62_o4&vk&Y-62)Gj6~@7^eN8#WAJ8gHT74{+JHFJHj0N{s_ZQfFbvKlwO*5?m>B?#@F~_2cHAO zY6ox6YHPy>FmuHEjR(`<8*~Fnz_g7>+yMd9LC?b#+&Z4ZOex+WV@L`K+&cgZ%fVNw zRM>Ia+B(|8&Ix?7s-@x(9-_xrsL~Y`O@NvJG_@Q;5)UqSaCFpy4hx@JL@j)`Tt9Y? zIGyfjYiYqJtWrqhl6)l~oWw#4dvZ+YbI16=0=|ZYqv;SLpwdWaNkK4vcoP9B{M9DAz_%^kmhMQm zU?|`$5idAHajFguhsfnn_)rhH^dW@1nm|$;J_hhEUUTmy+yYumxhn8o1eB18=?bB~ zn_xKI#iT>w`*^~^%s5)o;6*Lcz~O)x{92MID7a}&L`zVB6jG>#MqwV^MnO$1WEzbN z24E4BxWokjTsI-L=*Kd*tJw~Gl7hVeJcVu| zjspU8Pw)+T4LT8=2qPybqHrSi&Ga3JLBu<4Sl?j_PmW}~ql4G@@lS*aTYz*#9&lCU zAy*0(Qn)LzUM5muk%uKW<->D35Q`cV#{+6GP0OIS3qMLCUL*sOpHB0XU?!>noTm@- z0A@z-(A1JbUIGYnbb`FXiN%%^@UoW1drpGGC6I(&TIT0kT=HqvpnnJ3tF&2CdV-73 zi3)vHilphtN#kgbqMsn#Yf_LkKUwtC{&o?%MeuS9R^++`cT3208c=j%m7!$lp}3Qz z|6I1d*20&Js4qG$;VE+uZ~CHBfRzLxC{&jqqlq@1y`v3W=zp4k$+hve7T2bfAb*}$ zNMHCZ92 zkojmyr&b&oFu9{^>O;&z8@UMpU4(nai5WH8BNF353DI4YAq_oVJOL-2g$)U!IK`w$ z{<-^)Iwx5$83>_b2ZMa<`TD2+6kDv#)jyP??wi_TXN%rPa7_mS>6!a#ZeNnjbKdI!>j@9ES)2I}`*Al5#>#bm7B~fITwp7bJPfqYG9$ z#Lv+rjvP65q=`y_zkG-?jZqfgmc;%j#{N{YsR_oQg;-GB#c6889EiK7#m6DA>q3#; zgVlwtG;F7_EFEo4P4~RDwy%$-6obLiFp4n5rzOER9&dvW(dL-I$bsU60^jAqFpKFs z%-2FsNI*H5375x?@ltf6UaSLri4Iu01J%KYBLVdE2o@iZY>}T-8tNRnrZ9m61^N__ z=vIS_IKYe_1S%YYW&;whNYmUPbc2v->%dFU9i#5h41mRtRapxq5%5+eeK!T)Nq+K^ zqLrWlsq*rc4$N|*4km1voit(25{|ZD=?v@huLTocOrNCiyr!cRA8owAJnWhSQ1l^{WY~Q0n2w_G;s(0qAA*jrIe6Cy(auM=?{LwxV&hI zHg$kT)+hLCC{mmjGHXErgd1UGC$*Lc5~Q^O4FY5U7wAh-$R~+}4^h*$BfQ4fEb-|? zSgQ?OF-z;fCqX;#LD{wzPUgr2hD4Sg*y*k#{G4G2Fd#&+Nqq>S4j}{b;XAYpBtV8P zWM~QZr4Ajs3rh5ex^PAKCwvF$(ir$cB#cGT(R2sjD#T?AY6l0^McMcPMJn6T(Q+5n zr9z@Sy}F~VO$rHV{Oi+Lw_wNvG&15#ohTk=%uoXb1*x~FG=ig+=3!JIqBcLf9=CfamT83fl`6u@Poe)WL*fO=4U&@$9R>S6VW z`mp+lIu&U?V5rlG4*lvc>KU!5%mf6N%bl9Y4sWPS@pZ>bL#Wz z_th8F7vqo2sfcCWJN#U5=??X!_&d5H>JQZ)sV~RR)JG%gE9$GkrAGBN^>y`x`ZM(n z^-c9H^=O1N$)nBRas_#K)Q2mYizWVR#N%eP;C(7cF3Ri3$3{XjjhuBabYW;5yq^^fXD>c{GzDwhwYj9ZQH@pelEGyiz?*@?~NO=T#n z^BKbkkGEUK+hDcUa>ual?RLsf8kSN=P8stlYtb^S-jmyoW2ghCjLRvI)!@Qdy;bF` z7Yucwar?9V<&I_A6|+{(y5xj@y}_=oj&xdH?wWTqw_rD%>7fSuzWa!+YbUEPbEK~nBIWz4=3m#cNq^3hY0`>Zqf_Rc_8SESkU#c%%EK(iLF`cA2jpK?aj zGv~?@KK??ZkMFKOrM`Abed(0bsA{aolj;kn)HhG5v-PK(a`ntmS;84s&otr`P|s{T z3Fm}*X30sYubxuhI;FmSN?p47lv+o)h_Hrm0bv2*D#BY%Io)=Rbs*{$I`<(lSqL)A z5mrHS9wCpgg0PIxiS%}aR)l7R3_>HqIfOjI9Kuq)F8Z9ah@zi78ELiDDAGp|h7nF6 z3?U363?Ljw$RZp?=tr1Am`0dFm_(RB7)OCa>X|?=;pEL4>r_;I@sv6P#G6hj6Q?cc zHjgk{f67>39poG|sobjpEmt^(^L&;0<|yMgNc{S!RL=Q*v+vFaB9X{OK+Qu!FU;}X zs9JUlaAIHUuWZ=|4nz)HLO!x@?c|pI`qxLM0?uV?)LgR@>TzAxwSAK-`M|Mbk?nw! zfr6h&8===g_#v;2jdbEvovVMsLF@W2q7NhBEXUJ1*;meY1bEWgo>aay}piSlyR{z3S^Dn*pQ2 zSGFdFIt7Pu+C9J5Z8pRER$;7P{Kd#bz*$34R_v(SpE_k^B;Q_T7)y76zOx+lRQGPm z4hIc&9DJs{`g4vW-)_FT&obw#Q*re5;{iqFt!mk>G2_t_iQfL4vYR+kWUuPg3M!S{kMQ0w@ z-~1+=nKkfe)Yu~TemIwLmCzbxo77^RP&uIuLUn|;31tXn%K)|eP(PtSCDM*d8u<+o z3NdY%&;Zj$d}xeNjMxoA4TQD{WeAzAfLaNK2z3(LPpF$v1EGFG&4jXqItdLB>LoNp zC`)LV&>*2vLc@f{35^k&Bs58An$QfPSwcBNIYQ?M%@JB8G*4)S&?2EZuXc>fOj~2x zSR0^N2+&zV8A9`fS_v%?>Lj#EsGHD5Lj8c8E!6R$sB_U8w9-*y|J#tBFGpLN@|^pR zXKc4={PCUU*2#Hm!`W~mReB8gFL#=A|Hr(QEz6d9Nq>E(xr(H%vaPbn`7-vmQ@W$w zkM=lu8~Eo!@UpuBz&nj8w$LnEsIfq3$5Dn;Wz|@ZCDb|iy*n&Tewcl%k!9gCRe+8Y z$`TqRG)`!U&>W#|R_qR)XYN{D6<#QMgyXOIz;`yLI^#FvBb1~V!P?A zUFq4zEPb3Krug(9+-VNKW8PYD7Mw^(o8eFIG^bJKy0W@5FX=DtG#8OHQ#Ml;St&E} z>?f94hB~hYkS_V*sI<>}^yw}7bSEmpr|P$>%#S4;o*qxICu)fr<-|&_vvTVxV}s?E zrhDFpR(xoy9@uO(NjzIz_JFaY#2rLo&;46K>-B)T=^9&ftA0Y;gtCNo2n`Sl(1nHw zg$PX$sv&gPGoD(8UWIwX|B^8E$jx!LAMStwcO3)n(yh8XUUr6t2FlTGblb)m_HXRY z*XdPjje@o@)_mxK53Typc^}IA(25T&`_PgPE&9-c56%0~IUkzyp|d`e^Pw|7 zH0wh%KIGQr_8X)wFTMd~nMB>IqnT62n)H}KT=i!#EF-0pE*WFXZug;9A8PiYj1M*X zP=gPNp9mL|Y2q=nJ~ZP)(>^riK{5|XMvW>?F4)igLAgl?$KU$Ujg?;7{M&(;MtP)% z>2qFzd{L5L56v+nBk{P)|NBRDv6DmVvwV zRxmLx-r+G2)R40Z)E##aHS6;h)UdMw)azbH)K+P(QD+;dH@%6dGo`u4ouT*62HyYv zNP}(60X5-hZFk%Wl(3$1WTW7zzL0Oh1tLvXAbng_G^(= z+t|6;2#%^3UU7{cFQ|+SslLYSaZM3lz$Z zmDSw8MjZ@e5elSH&Y3KQ35RuO7-XkUlWd`wZ02?dwR!_a4Ksy0i>@T&meY!5))P-e z25e*YcEbXDQVMR{833-|>bD|8=s9mUDj@xZ7hDo{KOfdpcC)PYS2nD89CLDGy1}rn zpf7cKl$WiKZ&)oYk)x(@;*g=98#fEcsj6}V&NJxy9(D|HVgDobyU#% z8%xj|nAGe5{pn9f&T0R9?g~71(Gs(5SOaCD-`KFe^{vRfVAXSjWr8$@Q&xGvu9vTPfNcj3m$S|Q^5-;d;N<3ft% zcBSX6iL!2>y3KAga^5yRP=cE(%K~@YJZ?r-Z6m`{qbB^UGiBpIkC-E773ju9O8nxM8iDtCBT)OG$apm(>7y(Yy$$rZL5= zem&)^3uPH#H_Qz)vSAwMO0!-p>jv_&d0DdNc4fU(mIZdl+>xyFrCB%2hJh@{k5U(Q zWxZTB4r~lRO5I}XlW&E#U9HH)1O3GXnuSZD=ogmZO{ubXK_CQB81oV%kB6fSE2j*NRs4bdAZM zF^pbS+H^y38YFFP5lq)NQCqD_a7KR#qvqiH#4H(M5<^DqKBG~OQG0L;Bv?|%G^2K9 z5NGt3FzODrJ``}UZLnV$Rd#xepwqa=sz2BbA`DM8npLL~oY7sv>UePcp;c$!z6f@d zIC31;tc*#I&0ugE1Wiqm2F>QM5}YwiHfvQF159@R{<3x?xc<;a;C=6lG=l!M?EdpG zsaR<&82ZhP0Lq^cSONGr&S$l)37#p*AsW`N*kYCy*FWAs+VKv^>;C zU?$iP)IIk^dX+SN7pF#FsVB_2VCLbR{q)n3Ez>v-A9?Z$*3_;>bHPsFVrI-Fc3>BF zKG+ZJkU3;Vo-zhA97nyJ_F{0jFK4IIkt@2Z$4D?&rn%b7!Hk)+`}!i^H6E6UhL6by z2Y|W%{>b-@j~eRfrwe&jgIQo6d@%Ai#%aTO`pGAKl(iPjzA`d;F~R z;P~Vs2fU|@A<=J5+j`O7fPRam`ps+o7VRzQw`jll&Axs2& zTYT+YOwMY6pk@1k2RuQ3mQ48o5MTLUT8Q|k9Q!$%F5kAHa1{?U(M!4VAgPh$Vc_1w|&95CX4=YI(uAN;Rh z>o;eQL-#owJHiFu^l_8WeU5w0o^Se?Y3M#@fApii?mlJ~y3g4k|9C-n7nQSesFFGR zt6%l1#7E4PufIL7>;B@cG6U6`=k0lDmoK$!UTdDW7olC=Ml<)c^D)cNE>FF^mg8gc z&@NA}@T=HG<*Zd`moM^6AF)+x64<79#+GOZg=T*;&v|Yki7%rgzOn>#wx13 zHLY044pd~!kllcvZy+BRsu%!n2tVIMJ}y>~1x_Z7zL8vH&Z?;xeq+eKfM3A@{hSRI z)CYU41y@@2w8@AzFuYe;KBiT4fx~!}r=+MxOSjY8s(}z4r{HJy7s!Z)~Y=To2;_a^=#r} zrlH`f{kFFi6!cNEP-4}7=R18RTnrjs#Rf2iPS;1wRdk;ovbW7`GcvA>*#?^9ijnn3 zy!na&pk>ZvVzR&y@5usov0@n5DQn8&csQZQLpSe`y^P`w*;xJ*oMA&3Z^+I=(;@p~ zAM-W!F{>!}kp0Ck`UUqfYbf}T{pBwg3htuN1S|4T1cUaJTccMDAGc94`M<8&sI{kz zNf}l`+Wu?y78G17wf~k@aLwL^f@^k9kFTJQ*@1#NbU}LJ|ebv^rIR3x#uD?%9zO*!6!MZ9PrFvvv(C(OtP)WtTHbBPgsS@tkfmQ z*bRG!`!aT?*=ZJ8c}Eu_V`uhe%#1Ay63;DtT|l}e^M+nz#MQ3#VZPaPjKAnLs19lkO?W=NF5W`%E6 z7nQSy_fA3;jGs$XMBC0sj_w_Obl7e*8_meFGCJ95qZ5ef${)7Jq2{oSIe5W413_t+ z!}cW99JW955noLoGYvI|?azJASJTJLLd{|Nt*@qwLgU-J2u-jO%~MTL!^QPGb70ud z3AN`7;||0;H@2%v_9E8zc7ALYdqrqU=cFk$Xlu@@ z4fyx0N+v!34rx=)sx6dnR^4@%Up^nRjZ)334}73dDj&78x3hOvVG8@au^%h{p*-b0jMZ70pPf_x^iNQ3NtA2V%FU^6 zC^x4L9`ux}(aO!KekeDm-uhNwIUkdSa&zk8hYObTQ3FtJPJRCK1?7Cy5R{u!-}|1g zoQpv-s+@dmUj6WgP;Ob2>(t84t5GO7U!+`vR&HL6L%Df{nV09bK4uci&8y=1m5-W+ za`Ot?KECCA)GU;nSAYKJzH%-Gji++pKL)U|1Ld;VgnAP94aN5ZY7WW;R3hP7E~Ayh zopUG`P)CmV%K4Z@C>KyzZTc+KH7M6v)F4{5a-C`&%5@eu2p_WniMXCsJE=X@P&eUJ}L|Kmf2-^>baPlH4qwpyj%VF$51XW z$_;7dy44Vr>sIJ--Oi+6E7z@tprK%HINDwW6MGNGrFd zcA(r^aZl%C0%1(|N_sjU6$*Fuu9Ya~qheu9EQ<#)7lV~mcsRGNmAfF8o7Bp!tA_A~ zxn5+sVXfS{%7h1iC>mXTOe>UIFR`4D>V$IZC7p?n>V|Ub#mc#uoYf!h{$vOvF{<^b zSZ-P?7gAX$7gCs=xD8@dD;H7&P%c#5nfRC?C>K(gfB3D{M-4-{kiwMC_chl&p`LmQmRpl*&1vN})FPDID4Lf{YUMW6GL+jW zww#a2L%EF-%lW8PD7T>=d#s?Gk6MFr8|v#{_bumQuy6{`ekzMK9hAE$%FSuzvT6g$ zWs64FX{}sVZ9%!L!jom5<$TOGl*=k?y7<-VqjsQNRz3P?K{+24xFLgF*c0-q)x}^& zcf-Kh0o|3Xi*oZ?xd9csVZ$6K^0`^9+<>aNVE~Atd5Mo{xFHKn@w~)GWp3!~9Vlt7 zKB^VU4HS1JE+%Jn-q7&rA?q*qazjNvm($7(seULoRP1v;CJW_;N_@^o z4M4e}5})%?Lr`w0*ymgfW^^~Kf4V<_8PFOw$Lozs+`H^mi)u-&2k@kh%%5`B=ndN- z!oK9FX~Zzi#w~6a*B=;18Ttc-xm8YYkMsv7QHK5iCi-6O`ni5`HHw1pS-#%fTup%a&o#ayX3Z75XYe0MZ2CM;X zJabT31I}xg>$i7k-r^l09}|e6BJC6AiNgBd$Au!OO1-1$SEi4QMY3<~x6hmB&B$3x z*0Wa(7l|<}5;!->5`_ZBbQ+sUxMkB_hXU;{Dp1I2j9{P8!A<{y%5(5Az3z2Q7;;)6 zDa5t0FNZ|1T*&E!_8~5bJva0*-OxS66|t|mkLr(L04ZJ&i_C^5m=m`lsAd0~P=$+i zc#7e0iHi+JYCgAPVFg(eFlN$*df~@Lzy`fMUF|#Ka3lk&R4US-sYW6$S$PN8Zq@Ob zY$HI}e|BL!(v2**T{dqTxi`^G$XA?WGBNpGct&l zQJQTwG7S`ZKxA9ll`R*U0}h)kkhWTyZ7#A56#8ytySOXcd}IwcjEIo7QJQTrvIP|O z6~XaxDQYhdCcOW=gYdM8<)_!nZkKv?JS-HDpfvOGQF(R3fMcn=c`zJ$Ys7QLKD)9Lo zYr>o`Bi-0uB?A%^v4~aGfMVX9HzP~91%EAznyOY1)JXPtr`Z!Hh#2E^R+C-t0qAZvO_jybY4p^S(O7pquppzM(=fG zOjj*}B5P-D%E(^JVzz1(1aeabRvO%0%v{w5&{Ou5O)Cu}e`y`eRfT?k$2w=9vm^7C zF|j-Qd{qO`EB1=b8lK*bUaaZ_dd*%F?q{yyzFd_Be%sy_?sL1d=c~qn4ylle91a*u zEZmbt{;^s$3v{pQRkTk2I@VdMng_+G8WoBQ*P&Ri%7fypIx7_Gr4%aX-rV1;TK&R6 z0K?N!+)MkndPXtH8AW?ZcfVb=0WxgyV`j7kGR%xfB^}L9Rcv7(fGrI?%Mf_8zW44U z1JMQ`|LBh**?@5zkC^7ov(>U2lSY;rHAk>6^n*`d5crVfWD{uq%p1K zZK;}Q?#?ZR(H+k=o^LRMKfqDIHbgV#mb&}y!sOZ0GZUTr;CM$$4AzIyp+DGh#SLk3J6hb1%0k>uiMX5=x1$Ci zZfCbRA3FqbJH_H$3?{hIhA#yIx^ySBxIjp1C=eKhxBy=Y@r^mB#RUT65EtO%nZ?HR zv6B!N2o#mh#bC!Jy78ruD{fee3u$qoz%0atO2o};aiKsC;zGN{`Pey#3l)oVF<3H2 zbBh}`pBcjJ@whCvV_MvXy%@!!(Z(Y`?s9ukPxUtJ`FY`_FR$yyY|yF!Bw!-z2LU%)}bB(78b1#?UX%1+a(i*Lb&H zb$Y0Kc;Z^7+RL6+(zzWyP;)_`+c64 zE(Wdc#;reE*N+@Q%Q3BGtJZSe&O*y|-rw}K%xf*z?Ez@H&Rdn9mOf?(TCUs0TKcGA zXt{3V-b=BTK6VsZuG3})bK8hzXI@4b0|R#ZzdF%z{R53-MIYa28GEuMu&@U z(WAq>_gui@jcY*SQ3Q+$8$e=A@NvsGZUMJyty&xvF26;O3O+i2W9*L`RJYxY!4-qX zfIQ0OV^?o%05)gmY8+MsjhwVUujj%X0zxy zt@Z5JdbX<2zR)kXmW%-FTF+J$+c#jgs&~E1*VD(;?8^d!4K2SOeN@A~n*LVaktx>G z$7c3rkntb?(RUgble1d)4J>B^*!3F;7#A9huGeM}Z5$?|~{za&0t042$~ouc3Jee4iQk`3SnrDtzq z+{erZ_|ihA2@^d&F~EyPSp9`70?SloY~T1-xA>&UbikOvR>ce07b##T_T_=aUBt5i zV+wsvW1umB2V#ZO#kXRS8cXBVo;5=9D$sck65g}>){tBJ$3eWbAUhn)D#+Zv4It$? zX&`&?NP3anxqTVD#W`!vnvrt>|aa^#Cfu=QF>rAEb5oMOG~1L642m z{j1p0THLp^Z+RbPSfa7}Hrw_aoNPok!@AJ8 zN?R`SO|`W&b{7P~yDO6U^1l3^W^L@XnT|0qNL99VB8=~X|>flRmkB#TI z@QnRLS)|i3+V7EmbXm_3wyeXk9I$5sX9AJK4xcYpQ`V1-7~Be<7C76W64ut=q1+<|ae&arixI8pKh&sjn{YHyop( z-P&`z8n2zGHKyJJ>;$mJP@}QOFmV~N`1Cyp)(>1dV7wXlG4N5X!r!s#*Pe3>JSe}X zzI)S&I8Y&O)L(ec0ego}!S9J0LF;yFE^hQTgX6u%9*_+ECLVk~30A`pm9o?zbW8?E zZW@da#Yb;)>Ss5d`pcURw$t{gqf~twBI}Po<3P>2i8^EP)yAHr%0GYpc`KvFiQR#=xt1R+x2Wmd+@X7i;c(8hp z(ePT9x6-QLgz}yLJ5nyUAzFjFmUWwDTKkH=B2oJ(qZY3T#ojIQhVe>L4a{A?2!=KH zN!s|82h;$B8H?{jDPSaiQ)1%p@3pLaqPQsVE2BQQ>8QQq?9 z#V<=eIQ5-dj%uw#onN{Y_}Mg~GmLVG>PI2@JOJnI7)Ok^-(Vtb;5o;#j>n3n)yDQ3 zwO_&qE+$Hno&E1YMIDb_DoKUH3zyr2^$X8}Ph~M1OI4PVT2|>b-Oi{Vg955@y@V+e zLL~;Uf|c2u__kHy8yyh5cIAQk22@`84^T~8WK%++T3MkNL9mKS&4QujKu{^oSOSh$ z_Y5*0k4=`yOe%V-Q{M^(7oTzJ+i^booKt`9IVY(WZkmTas|i?o{MS);>kwtBokR(9 zV*>sSJy$+ZUB4v7JQ^=9g3(_TRO88n#l zIOkB*1vo+;j(~cy-c$Q272Ers+Amq}xxK<`6c=8h8V;bY8V|r*G6&F@`S}q8@15-7 z8zg&F7FgrrqqyvcaHoCNP@OeK&}e@QSN)IUjr!jLZV2Axtp5&Pef})2wivA}Bg!*6 z&uF?6(JG+}jK=;1(F7tja}Yvjs?jq9E04xYD~{=oDuRiC#0_jY_50ClVc0>F{aZvw z--hIIRN&wiD$k5xu6EQI-Z3$9gTUs|e2o=Gd1SYOv$6fq*~-R>IIF+dV?yH)yUvRw z-DI@IXd96gyxA~w%r)?Qajr)8zvZ`q3PTbM#wrN$vWig*QT;5`8iU4jaMHi9Ow`Pc zx3XnUqACA1uhohDa4u_eR}(oNEA=LN@aX;$Yveglj6-EhZN{=Cz9;@(O1%Q=+kItS0oSfTpH!YG&4hjz)~R_f z^odEAa6GoZq*pNph#R`eVDqkfUp3-Zi4VW8+H%;tHkZ<$!O+0UI$xrP>O{X~IfoP7 ziC#e2Sk({Eew$wdV_bNj+GDi7Mqy+njk;9Y<5^Z|{Xl`M_gAYyNVTk?QrRZ>sbP^c zvb&&l|IXNxHahoGw;Ws(AOFFWgj1BYe^+hfG13Aw-(Rg}B!A^>Vps1Ud%uv>y`MH{ zmv{x_=SW_GnwsA&@e(r7azW6yjxkr@0mdT_R4Zc*=7AUBvTFMQ%gODkXlLZt4Rw*V zhSt4|uG^~FE^;Fl;!^-?SFDj863UPWA(a zDt`sNG4zUE?lDCC2=M#Sf#b_2vGX^r$7)_t_llAxH3=$X3K2`U{eW82h8-F=RO>6) z$d1R_OLOGLg?M3{2B~@w6GGCV!Cky*Ild0}F7%P=DCQ6F_UtQ4+i@=jBV-f+RV*l=1AMi8bEavwHS>;PpSkB!8ZVi#g+``LWSfK!7(nl)W_pt$yojYI4YDg!0m z0lK!`MFkC;Wue}YFjA7B+A%9Y>QZUyVUb&Tp)|Eur#6=ix9X@)Z7oR!%ZU>0)W88u zQY#^z1$ERlMI9=!M6uFpm|6EtxJGKOZmrJ6Mh;BG=StKw>RySyVT^1lF^`K+#m5g! z9B`cZXD6PUc&^9@M&oPIv@(d)R1x*`fz3FnFa1N^Rx$M;2;pNJ{~-RkiId7PTUZM@ zdtiYW~?0k+-Ym11kq=vo{#EpR%$y zsPiO;ldK-NaKPE+p;swl2a&pnnI3%L{4QUtZ7wI9=5lA`QA2GB(G*Ns>del>qlPns zu!xWcVE}VME7)0GUQqWSLaFypX zhI8qRp(bi*)2Y~G&D3s{H_yOETZo*iATEF0a2gOg5l$eCA#5SUehcXcTfb$fB`Mof zEL*+2o7oPg#ZK%KCoCSmxgmr{15Ql1M>8V(2{5sq&{x*mZb`Tmq1$&=0R3kG~vX*sYD=~5%2wH2g zfDN;J*CpvaYdFUdMiC|vwh(p@_J111X80XL4c5{@reZ_2rIlzbz8(hZ{v8+sVFY0U z%ZG+`XHV^6@x;UB&gf@RzX)d#&LJ#))=;@xbal>P^$-T~VxQOne&IjCDG}BXHW0QE z0>6uV2&)L|2wMm{2%&Q@9>N;J2EsN%;B%;6gmr|=22qzF~z5qIe!w5$a1`$RO z8Wuo{(2H;!;RM1MLgtI0ML3Euh%kaMfzbK~phY;2Z~|crVG7~smkehJVH9B!VHRNy z;lv`onSn5kkVBY9SVkE6L(n12BFrHyBIFUK{xj$h<`I?=RuR?_&i)Z-5b_9X2pb67 z2un+#L0CuFLfAnFec4b)57JRNR9-V!9zV$HC8DHy)gZG(reqN9j`zm5(IBk$|55A# zxn)BQldKvZeQ@;PiR$6%k?N(`X!Th2_^vL*SmGjd8Ic-4h=t<5sn|=AJ0pLBdC5U| zGFr<-_4L6>@N@cq)Ez5X_!;9^&~hA}Jy`6UoNL3_UqfHAV%)Cg4xT$$+bcfaTkbS} z-EjI51`x&&rVwWS)KKRs4UKuCnzBlJb9I5p;M&292X{59r6*V{MC#H(4A{YqgPSBl z_QK$9tmL@^*@#*HWg*%=ID>A!RD^Lc4<U*|&4pvaH=VH$kRk>;)S7aob866UoR0%WBS1(*IbF-V7 z=oiV1lFZW4N~LzXWtojLo4Ss~+4z!3e5N#GuPc#gEfEAI>Z+qOMa6RUiV&36i8}7) zAE+CwWByXK(f(B3wk+{HCGCm@$~UW+bi6iW_Fj)l?nYUBzJablp(( z44?8V@|VVMfo}$pv;5~6ND(d}Tt+Z2prb>W`i`L%g@bO?yIb#aogPQFFc%Bxw%c1g zd8$1wdK@ozj{YTD3c?t|6v7#Va|qLG=!y^)5%LIY2pb4Xe+7*YE+Je-F#jtwLI`~q z-6}!`p%bAWq5LAcWQ1mf!w5$a1`%4n2Ry<6!Z5-(!u0nHbvy~Jqa1vxwcqQMXs!m6 zXa~+vk|St|)#l!c1~e?#k>sxRhOzQDK#nCj{EjCll9S1)(Fqv4@`mtIiHsV2CoYJy&8JHH^(k zc5@>)kKVk?ZbSbkvYtR>Rpeqj)!AJ>qb4LPQIor~;x^SDXY6UTK!l~IjoTf)+oy8) zwhfoT*D#xN3%9>?LAMv1p+RMuc%v;id7GtrR-Sp?_f@&6LMCpQtC*?woA`X1sxwuC zsTxg{F)If$@%j3DBDiT@c|4<9O+0O)I!$%htjr(8vl6P;RQ)Dy{j030j+<)0tXw&$ z22C|&suQLfHr0r!Mol$ls&P|Im}=5gQ>L0W)r_fTO?AdpIa8fA)tsr$nQGn)F1%7L zm}=2fOQu>j)rzU|raEt`Ra0Fs)tad;nrhutm(1W`v)VA#rm40}b=g$grn+jPP*Z>Z zy6;=oHwIG`cRK?Ob*Y9_aG^bjuQTqLm5T>0l^cn7c4V8CX;rQrQ~^tsTPlR1t5H>1 z$a3;x{d#@n@a-yQ1@pH?o-l(o?P@m%<;MO6q9ZDg3v+Bjn{gtX;G~9oC)oavIOJy;^ zvD5%=)Zrcuz8kLM3wIbsWp|w#vMLYXTzR6&a^6|-=C9wgep%G7X{>9kRO$rwMqXLj zd9xbE?u!*X{Aw8OPk+gTD~zIWRxr~XoKFRJMuO$935H%nH=#vUPaY>V4h@3Ztc|C9 zu>Dl!5jA0{Nn*8~hFJ;Iw;-BJ;|{5s#%B27dtvt(0N=;wN{l9M^&R)tQ9+%kMxJVA?)9S3H=B&sQcH{|cU}LT-WxaSgVb$H2 zH=*$1E6`h~_FhR?d8Dd&?9TKoqa(`-hJvkXtzi5;JO4^39Dat4@*2J@g<4J zAq`LBs0*IbXScy{KZFKj&1%gGmN!>csEe%Zfrib@R)&7Low=GxSPTDk28{SObVvovj*d z)reg8hF)+zwf_aU!t@Vbcbw+|xI|^=zfu`nHQTDy4qiSK98RfrTXou%gBf+$#uHnr z*H-VGW7{^?$#ax(WFh zT13@B=Dl6tMu=6nJ)CFfK<;f zb+bE}wAGYdIa5qG~NR+F%XCEhB*k>VZw^RsnOgd4n6q8;CN?nqBCI)eGs@a6H6$_#>Ddw`Vd?5 ziH88rJ+uOFi(uwA+W`*#=6p)@N5A*_wP~IdG>I1uT-$bXNs|~wy z_LjYM+s&a(~ z_EiG@wmiGqu`)Ntm(hU*n~^CZXxju61OBVa6eJy5|7+Z&DR^)JT_&3nUO|v z_Wcvk+(c7B(=IfaX*7z-v2Ga1lm^qu5kU(*|3lTNR0fY8;87yvTKK>ZQJ~eE!2JWr zwaut*9MJ@$MMm3<${$2D$Y_+&{BQKzuxmSdFW}hnLX4^ywKM8xG&u1*m`}U{B+>%s zBo0X9J1g<_!)$jmXni0&fw8J*OIQv+g6t!YJg?eu`%(ojr-Iulby%rxh1WAwzrrV7 zRaRA|E%oNqCwfyjHN5r{1GlK-N)0GAs49t%57BR5MD=!Voi`ZZ-Y(+fXkJxO4N?%Qv@u6ixUs9~IE3_Wz5n_kn7wO85TP z@02HW2a-a790-NlSW=-aou>S;(b82cbP6qwQRr&4_!BIy;X0scOEt78u|^7O|J{`Ui~?jS&TjLWEad@n|Pa z5JiY4iKd9A5vB7j3?gGUiODKim1O5X{+0;6CBkoA)+1M>ske~DI~X%Z5pm)lF>;=f zHve)06~Y~{DPpt&)#zP}rDK@#5yi<6x!Ry?G)!J?&}}p%Ag?j#));Cx8jNcU^&4r9 zXr5?+D1o1Sh?aIObX>;311)Q11RI&%^Ysy3_xaZN*N;j%b8#CR0r>d63E4fD z>&T9A`%eFSo$WshmnAXWK@G#O5cP6S_F4hvFmsgIf?f;mvhS+WkwZr{NNn-5e;32o zim_`&XdTt+s9r}6I#F}2m|sUtI&$hnptNw=orO5@!ex&aDta<>U1JE?sYORF9kuGH zO-CI%>eNw}j@&xx(UC_-eLC{$Xh26k9S!QpucLsDhIBNnqY)jABIC0*be)CE&aYLB zu(skF98x#nZZxd4bL_8m4PRh%Aw3G09W7OAaI>D&4rfahw~SlL0}yN-CC4GRX@{fQ z;k0)6wRTv)4ned;T}br2RFSCGWUrJ>Hcn1E{A~ly5tgjj=h)I-QIBA`*tg|!<8Zxn zSf6rOu}`_X{Wj@x_kRg;r*t?j9bmn7c>79(!E4$NN&mEs-=uj|I#jR&?K~w%4KOC9 zo`x#x&-smt31^)9Eu{;G_1{uz5od>Xcw9T2(hk4Y4(GMQ`b`}2lsw@4f1OJ1(@n~} zOwP`ib-i7YChX7-$F;-r+Tm^Oa85g{+{__&YloBC;lgIcjKo$}D4jS|R45HdY`1ne zsU1#hhjZHDf_A8=PZMRYW&qbVIeeKl1=(>ie% zMRhczqnJ+AIz+t#@7q&cM{~ODcX8Y6XhBB_o#?dFqK=kyqQ_229VzKTcb(8*N4j*` z{>VwP+bxHh#kNrl-=<{uif==ue>Y*?XT7GqOdGxpUDICkm1sIBoCk5YyV2!NX;ZVM zg}T`VGRg>Yf*Se?r#vC2YiKpTnYB$K!lLX{wNOpy{bJnv&3@A*4qr_9j>5O*i0rG| zxIdga(uXCQoz^d}Oac{jO=IXE$&^m!%UPS@Si{|A07Qh2OLaqEkOfcr^mu$oZOJ3Y zmb11ion+`zD#r;#t>P{;08(+fFdY@1tz=CnTRN5D>BOBapVzf4Vi+wuNuNZO>>oW6 zgA$VujL2DDcc3Qr0F|esklI!vT4E8yXFE)2eQ*S~r?I~Y4M3Y5&Gt!n`(?LW{xyn2 zs`LF#vN=Rv)40Kt(rJtby>Z#i+Ii61AxFAl9`w#jv4%U_J`8#h)AMEBn4E3|xp$4S z*PI*)*KjxN;gN8JG7ODTbW)ssxCM>ff)tk?c0trX z@>i-#Cr7$r`YJ>8D#PpsszE93+xJ5Bab!RBMcvf@#!>k~y9Wlo)Q&EBFKGUw^Hhss z@qa&#r4l?volZ^ZEx0rb#Oo5noe!$>fGPs9_UC{dn$13Os6h9j-5_D>1xCV z2T!`{$5Cx4htij>4$Dy9bhSz91L8tAWRP15k3x5Je}s? z((wvimW9gKD9L4~K7Sm}dosv+!azLUi$4G1xf^IqKmy>ZhnU)j2cVSsh z#mmXMoNUXfY&n%LC;M`$T27ATRI{9Fms9<6YFJMAkjpaj%Tvg`0VL=0%MHWq%NT+G zcp4sqAhjS|+bdD10gzl!JI7|A4ujMR)%_DM)KQSypbnlMh8h70-)dVn`qLQH7)YH` z4bDmxq%NqzpN&9`gXD%f`SUo`C6IccPQN+_RSC^u2@>i|XdbHmwRtQ@LY;kW0jlW? z77)Eq7tahpwY)xnWlE@~@F>(OknjnkWtKM*P@6y+glhf87}OS!{7@U-3_|S!DFD?u z9)dam($I1mmfZtXa?mygHOzyy00wOoTyBVC#YcZOq6np$ zLdz+ExBIoiG%P9i6<->9$>jn+wYiM#gO)aPC)J zq|h7$&vX)11VZP>Xz~^yxPF5sBmtq}w{BDv2z?MRdzR`F)UK!=k4i&m{T-Gb6+t>d zdO=1!0ycZjhmf}4`_QsNHO+KE?F7jTwdoIoPy--Ypn7-#Ymqtp#{j(MKq`jURBQ;U z>60NWK|@{qqztFl^`{<8+ys>gF>^bW3$nw@frSfHVy1#c3zQPm4vOUegfai@f@9M^ z8xgFPIlx@{=LB5zamfK5V9vw?2pMP2Gfn?ehR5**;jy0@LA8SFkz*GIo~V0F-CshG zP0T801GAMGZaZyd>Vg5&&%)D2 zET{__6^4PehS^Pqz*@unCK?llr*p+d4MMZxl)1T7<0EaoIIo*u9xFEETU?|v0Jo((@{C{ zp-DkgLWIlI9t>hIrWsgI(}JR~X|AhbS;md&;WgnkEjF4F6oaF#yEdI>1;qt=_BlcG zf))fN1TEtI3i#J{qbo?_Ck{PsjBZyt=^(Uqx8cEcJsBZ)b)z3JLGW~=D=_PkgV{E` zeq=pa^i-@TtDbCnZB$chqcS~}>&dRCDm^*$RD*a+-JW!+yO!8nJh4mPYEF@&!Ro6ML6CStdbJIAI&_;^mZko{2Z(G}L z`HCW%V!5W>iVwj9zu{| zj5{wIY(9jBAFDr<(9@!xmh_ZF9^=wQ$w23Wr61B|q=td9uSlOk#tbrDcA5W*%$Mbb zuY__vSu*5_m9Mq0rQ!^-W(eP5vRw{hyC^-a*W0ca!-vJlVJf@qW4}n{8D!6(stj1z zB7cB!T=sKaBz(@J_Oj|hB3fztd(bOlIf?3JqyYcc5yya;8ZxLUgPbr$3s`jo`I>Eg z*E^4hrXvU&M%a{-7c13%jHBU-va@`Nqx18+sf##HU#yE>RGV+OkybiI%N{xLh6zw z%Ry}ziIW>@hZK4;$Rp3B>dQLkCF+CoG%su|z!RsU-8p&>5(yWQ7v42;ZGAvSS(>k_ zm8RQ1uN(M6ZC>*WaEpFx2P8iHr7REINY1ac1#@ke{* zidnF?9E&$HcJHEG0oK+$;=MEmH~Uc?7H%OlNg#ib4(^jiswD+Y>JU$8rF}J~SUkO=vY^%vt6fbAg#;D#v6PJ=4N0W0o_k zK*Q83n#nLE)>8}_)gJpR&EnW}>=MN@XbxiMv3b0qmO%>{l*ph(xC|akq^pg;+C@uH zCJ{23K}sg+GI6Uy)8pjuRDA(GRvR)h4nbuKp zCRwFV`R8@PF9@&dmPrjib1W>18O(f;%GiT46%UpJgZ)W4bF1Rn$RrdrKK&TD+7Zf% zMMIwI)P7A>ndHc%8n{mIbZ3ee6g`+0)$^Rk`H);-9DqK>6Q3D5@p1C(ruDe=nlq!4 z^SZy2CpWEfax;k84*ViA8J^qp@jPc~z=;`*?qLNqfmDlpYk0ELDQ7sQNB#}gN!TRH zC8{LqB^o505^azCo1y9|L)!*atVfdR+ygnUDK4k_Olruarc81o;h{$`CU411`C7}# zl}W9c)CRBkBN(W6WKw4)b!CzpE=!MK#NGqJ{3r(P9th=+V%**bq4QA;-MtXJk7D#b z03q-w2Jk)zqmMQ$R}VPp8TEjT9#aqa(+;QyjA?o5fuUtj(_p6I0rKNl*-RSBq~S~& zK@^?Oi9ss_i%*W?t9){J-r(z6PGgxAgnO&6XE}u+xP5&Xu0j~_4PelkNfVhA$)riR z4EY8zN`(;g1u#~H5b+IT#F|MnkY{|O%MFv59d4i))VME*F>EHqGqHO&hJ-#0f#)G8 zk74|~kVy&1rpGYsU4&5l*z|H*%A_RZ^2ad#RSXy^J~q3YbOzExZg^}C(;Nsbk1b%b z1EKS=MND}h^gWiu#K(Z$w#jNB8(jR4>4bU!qdxV3TRDcgW$2n0mM|!Q*TUmQyrO3y zyFoororfxe=_pQ&IRXl2g=nduDg&;c>l*WR%XV@YsK!9G25hBG4M?JO&?2yVHaQK{ z0@Xce75ELddYfpf5UvVxX;GcqTeefHf!YknKR$@HZ0bPhe8Zlw-0P5w*fn2lLw)upQyz+5<>im27%vq>$Zvd3eizPUM+ZVduTfiz`yP9 zTQJUq(DV1L0>1%o+$I#e=&BH&3ei_Vg9t97+h?}Nw$E-Szkvb>YJajz;FsdVjWlGS zVFQgAu;(>O@5vrPV+L$h5k@UU#+*6rVSJ| zU=wT%2cN=7ItIb_6o$^T5Qd%_6Y4u1%69b~vvRxo&c7a@IGiV*3Spc%{S*eza|W7+ zOZ=$_Mxh2uKu$b0g|R3E-N`6o|LB1F&I2dZcaHR{?=<$R@2q zKokQru9GG~}EW}G<> zirEUGRFY!UN`CZ)u^X_rH?ChmugAj#AHhm%K#s}n0Sj0gu!2p2GSC&U%OJlx0sN1C zpm#g4zZZ~J2C$Zbs>K{*hM42bN#-vm84HuY}-+` z1DlSM2}ajEW0&|h6{6PBZnI@*0So$cyJ&z?{} zda_^r=wPq<(GAb4AFX=5W-YUU>14JrTbW(VKBkxHWBNg1t)#M)u^slR zIxKuVJEF(qBp+Re-ul@w7!!Lo1kOD>4kn(BfXdL641!7i8E72^+sxdU-@$hz4}xaeGhHGb4xgzmgnSDqU||7=zh)wdY`jo zs82=F4?oqDc0zrsBduS3%9hrvKILEbtol^>vV-bVa|+;54y#X@l>_JypR*#O@_ZR+ zeBKTgKkop`pRYwyA0wrgkkGS8rx(d=lD9UmBla!AsGa9Zf4DQdx1Mn z0Q>p@S?5B$`Wj(QGiR8y%z0*lxx`E|buZdslbLB@TA5``2Pmd645*~Ol(~aD{X5BP zqyZFJ=Zhm5N9Ab_!gUm2<0u+-NY*f-n>RjyKuKG5OBKP<|#53@a*z4O+jsIaD*6ChKfTow^ zyrcLfMULWL(q|&bk?lbD3E-}NU}rBNOTQBf+~~ZSK4yS9%p7HoF+J{&NAmf z(N#%fDHDC=W8XIPlv5B^8b?f-!d*$BD}Ir0Q`ku3Mw&2E#Axu8Wg4?7Y26-53X;vPWMI>eL((}&f5 zR0`%0bA&m@3^6B|lgw#mlo?~rGZ&bP%p}uzs!9B@v^OO(toWitX(MU@OICyFZ0sr`S>W8nLP(S=hzxv^0 zz3PY6ID_d^qZm>rPK_YO;;CTfl_xB^Y^kTGjJ9fP37)VBmtdH4O3pQsrzSF0t8GIs zQ1UELbOOlhM|H-}9cXcxoy14V<5vvq)mH3#094UE91{?ehq^!Wzd^whhXD7c#Gv$9djuRbu zS1# z5u=|KniYwL#Rf7Wm+>F#4S0C-&s%VDek|usvp=?g3qQ7k$sd=2##b;Sa+kc-3*dHj zm)z736u^Wg{{5$w*~xS>y-YuIm^liHXr;jBXr`12&c>ETGQ)((D-Hu59sN(V7&EWb zBEz{?8ooQdp|Unlh?*w{mVPn< z6ZEIYK+EY6Say0GbexXJARqJshfe@E_5+15%EQ05`IrIbFf+)UU`{ck%or#pD}}9! z%2I}ScMt5wXFgC2r>6{fnD-Lui0P+MWNZCt47C3=4%Ys39(4XRA%mcFYGgI7k=3+@ ztEr!V=Nn-LnPKK6bA}mb&VwRSDeTzHFJ(e}_uOu(f(g3dk^zqrzlO4~1QoO~wxAxg z2j%d+HfRBzL8}o#p6CVkod8fxJ4#leEc`+F+u{f_$P62Em7=DK94QlO z_tfv98fn7M%8YoBS*IXH%g^MPvFvAZoap#jE!glgIUIET%qheCxfgi!1km0ONE?Ru z2hA~Nm^s0mX3jF_nF;0+D8?&ALlxDgEE(N1wukCrN%7BJMm$aZA1Dm_&*iYJ_UE0T z^XG1`?dKlQ{d2Dj^2c5PH;hBxFpiQE7!u;2QX|Z1<_vR=xyV#rl|Q%YK@qMLEmhQz zGC|j*Z=xocV0+bP#IxN0f#H_pRX;Lpcy$PLy*dJRzB&eaUJc10Frl^Np%cLVen6JR zIRAV*#hhWzG8dRhrXD};qPl@1R4Ll3$eA*sqp7nAAAUi<92z&`N%F5yD{Dg$Watb{ zfo-8E=nlm|ZzwK(n zX{rgIm_d*D+Po3Zv40H{8eU5vL)U9dVCQSHefPYk2Ys)ZRv-x4?-to?w8&ZDLhrwmNLP1W7&<=f%I$6SXSUEdTE05j1>-TXUahL z89V4b;{g3udKrj=R7v@@%iHJ})+6a!V% znKH_MW8g;WLXNK28&=?{{x4BMyIyy~q3?AUIQV)SIQ)7i7<}C=gM8Qv9615tZq=6* zp>{01K8nnfOe6nTZ(&-Qc4iH;p4kM7kxJpOB6rG=#T%Dyq#oqr4trMM%>r3E17R;5 z0%0FG8uo+X@DMl|9+5#%I#nfDGpQ=UETD?-6dgYrU}jpGWlRUNf!V@r1;ucs7_K5u z%7m8hxV}SuNZ<3u*b2PY@V`(NgKvc3F#N_i7(HESk83 zHS*&K#mq9MomtCtGFzD)%q~z2Rf@4H@}>+K|IWmB@GT-#gI~l};N6OUfgz*6h{GZL zi+OPJ7YT6Y7fayWFO)0Xc<4#cbmJ2k$)h2_Wc9hB5Q6_6g8P|>$JjsiNBBq<^VS1T9kcL*!@Cq7PL8B}9 zM=9A{25 z;~+jCg<%mt^is?$W7?SxW<9fs*}`-&+n8>qmpRA`fHb}W-=9MDoEXWX$O@WVK~pPe z8ZI*v!7PLOYKpF)nH3aUL9;6;zQPd2Uc)O$*5dd?I18VLB3YLgCML4f*BV5g`dVl? zP@fJMbx+XZ3R+r0NdyV;<2e!LG;@YI%ba5-m`hCMAHyg%9n;7xW|lMUOb4@;>14Kn z2G7-`WEp14Nry}5|HsKJb*!X19d`kq4MJDQoMcWjXPC3hd1ivS#7r`Ezm##!OdGR| zX=gf^4NMo){mW>UI$5#-&0rrti8RO@VvaD!m?7o_bCNmDj51@)dFB!`$<#$AV2+Vl z%q#~JYr zyC%GJHl?(yzw}`C{>x6x-hYWjqF-)#7Hg?^+#a=!xxidxCYd@s)P->a)55eeZOn3J z4YP^qWV)DbOgGaD;zMH?v!1nNtK%gb`q5gS9YA|CbJhl1XV2Qf_*n-yceWOsKihye z;Yu(`UMeX$0TlHEdF_A!W|#dcipVugC$od;0m+huZB*+r zEPR~|jq9X0n;Nq4K{BNNo-do6S=0jA_?|zTTv^l#+49~{Hnn9@2V~oOBiV$uvJ0~P zy|HX^XHgI2n)gE4Dh(J17=d+}@bza=hLRb?E(0lc8lJRpD|#9ev+zq8eNd$f5T= zCaTBffIRWO*F;UY9FV8p_nD{#mjm+5`+gJQnzliXzdvL$6t6M3Hc|&J3S1W6A2CrE zE(+wO_s2}sgNp)L_d&=+eYhx)O&^S#XaE-_n+9fVCGc%ZNBLki+NYxzk}C$p8=!R%ssm|mujImiq!N10>H5JJfWKJ-rnNenp83#p8wWzPAShj4B!?xCaZTn~zx$8gD=it5G1GiHg zTJcAw9Mp%8EMUz?R_SwVFHmwT?7$+(IshZ|e zc0~3~?xT6+tW1~X;ML+gnsL)k+mXF>+5whN*GlKTy?`{L1CQ6j6sDKyWBQo^<}fqJ zoM1+nQ_LtRs;WgxH7%r!u)1t6O2CN3bVCkaZNB3U+&v#Vk-h0-7g+ppn{vLFON{|@iyym@ zz499mX#9;=I>U$oHliMn72_6VwlO=IZe|a&k2%O3W{xn&m?2Pue~c-zmA6x&2NLMt^6@MU?Hm zz-m+-{W%Y^FJ{`A^-LGDi|GZa99d5BW9BjD9CLxW$XsG7cnBS5$+R-dnN^?|sU|y@ zld?8h)pr}t`}dYy>;>RZZbm=(dn*j|{=N+K|K1Lc{N4eEeqSrY{6{bF+zFt&A1HfjNE#Pfvkt~N@Vq_7JIoelE3<>y$#gTl zOh0p&ISLAYwHU9anv_}2{Vn^c7G_2M;K{|N3H7qbVt??$i1|PGz@4Gv}EJW|FD1@smVl6$hJR*a;e2cF344X9M3h3uc1~GwV9{`F7#+ernI7K?qHsI`Y)u8a&1jTysoj`e`lb`LqG-`_u^zeCh&ypSH1U4o2`?mLq#J;3p+7AkoykAB zu!4iJsfk7~DusLePd#~f^mWwc-x%0P80-d3tS(e1{zMq>hB4?e(F8*3XZ!Lf0>Lut z&!b5Qw%H+UBx9m!6Jd-yW1<-52_}l0Xb!&hvm<#1eTgBsk>;T~XUFnr!9*CjEt+Tv z(*qMJIi$-WeGVCO$drSIZ8nmp?$=Sfx<8zjgRl6ZJ;D3gWXZYm{PM&szTijJ9I~NJ zhkqGftP!pJG`!qNr0vfrWW24Rs}UGms*0U=s)$R(rsWboD;YLoW;OB?K70I4H~ zI&-KCj^^_*>~oSsJ&?=Jhww5W1P9*j$q1K`Z%h4o>dPT-4h_KBc|Mk>KG%M``rOS& z$d^NdngQ>&k0(X_wIoL!v$hW8F@*SdZrHd67U0eFXp#c(i^7$La@6N4@5PeFU&=95 z9{7tL9R5oc82pPvr#@G5fQAuv25%10NDhrcc3{gD^||b0G?qg_=u7f_B00ox@|*0f z%noK3vxn(ndO->!u%Fdosmg)Ls1zn31lc_-RXJ3NNMRDf6uU>IDhDqyDNI9%v-`YM zqfi&6FasgU?z+#)aPyc!iowyss#U79IV8s(Ri7>7(OeG65lF*li+LHQYtjdw&GZN1BQp6{X1-y(ETf5lqi-cldwxT zBx)rZBwP}$5*`2g?|7QmX)~?0ehZ)0qq5wTYWo&Gr$_c&s=Dk__APScQcW(^=2AUO ziv4SqS$){M`~^J38@^UPMBD&Z+kB0gnsP~Y?boL%=Xc^w$y}0M{4Ht9MQE+LB)j^% z)0DJt<4s6(PSB30DY?+PAf8TB)@L2l&$RmB1`fx}39`)gx^keG7A>IAR za%$ZRGdA+%QeQ5~4*PMPQh|5_xgXcg``g19eOG8N0soSbPY}Iws za4wDH(r7M?A=vZFl{>$U3x0OFa!4L8ELV;rS}>PF@XZy<$!}vZ(`HaMQ8<^z;kI5V zrx0Qymm<)12;~g4Nr;Dpau(uLE=@x_C6sgDR@8@eX`9rCo0LlR;Wz5khr2Pluh1*W zG%jz)w`#scQ3O7&SI#5q48+rV3?lvgb zL&W25x;%BLq#e($Wv)>Akm-7PAlYl~)*S9;2V)+Y^6+6fT!9tJZbY@@Q8BbnS15Nv zlYMGhmU0N9Esx6bs63DCaI45tj_*RD-<_pA55Fq3t9eudkJDMoX`K0RNik~uaLJ>0 z0XIvjPGXBh9)j(_R%Wn-c^mU?=5gjp<|*bG=2_-B=6U8tW|~Q+Q^CB2d5C$G`8e}= z=G)A(%yZ0(Al2qkJ?vSTqnyQgG~`i}Ji8p_95iPhwLsgQqnwB4%EOhHZ*4Vvi(2!j z4L;{{l#B4`fS8%9q&1*GDsq)vdAu!GS<`?wh2eEPSE+#5l}B!9Z|5qz8?cMvT0>+L z^}yj=u5ue3+SZaMkNV(nF;}@8;k^)7<|#)Z4&;#!+KxQsacF}OZ_87jhvxbnd9(!W7F9U~EeY{% zRXGC@8(iq{p3LK_au%B2Oh#yDROK8r6U0wdkE|Q@_0*ua#9}eE>KR%#?I>1qp;f8mfOe=@S#zV3{VNOAKzqDc z*#W;=h^LB`TcpQYs)zP=v2rIo8X%r4Rt`xIY_SRLLa}lj9!`j9tCW+{qmWvltz4y? zf`J(hhu2OQp1J_b=L;G}ml{RKOzw@ziQ%hx9PhB(%3zE4RR73gWrd%AL{!?HaTTtCd6Wh(b)W zD#xV|BM$LSt8!L))9GcqAa6wJK>&1zSBD?^26=#%8t1Bc(1WwMxk;rCKRfNy#Q9i3kB8LoDW;m!8 z6&vnQi;RYQ)gna(Sp4T4k=orUUqTB$elr zJs+REL|Y}DFz>3U`#%!9unvj+je|S#@u4fK&8PZ&e0CFQt(R?Q6QnhAmjdiFO)dH4 z%Ey--@kvK~u!=hKk>JpUx&`^d>F`3GZvpk4H?zXdc3;%(uE+hGPwrHxL@LxELOq`f zg~eUshAyrCo7_wb&anDznOSaXJ1qoTl;;f7&R(|0i|~)9{9%mT3gWa>Q8PB7 z_d*Y)?Y(uIwxiY=?QlUmq-h&NRA`60wZrq;;ml^daEn$++ifdN+cj&Yb~vdW&S-~U zSMp9=7vzpwYEeXo3LTUf((S@csM~^Ct*cgxI`PJ9(M%fLCem;xj->6xEtLk3Aik7Z z6j%md&oX&mExW<+Dh;5T9J)@)m2YP~f1QE_I`ZY?>!;+;r$9cwJW9j)G?GuF`81Y) zT-7#+$e4p zKNR&{6wDV*UHEdPXz8MGzA#}k-Yy!?7oA-+kx!BQ)xP5Y2jASHseGEwSI4pWmwbm3 zn`{>JVMDM2e-}mb@hLKh!(9~1r&%c~*gmvCFENP-1!lW?fa6*0Y9k9nTksY-OT~6| z44a7|l+~^_vtYAhPjE;XSKm=Gyk*rLtB1D~-YA{cVx!0lz-yZMwDe70 z-&p4CmX^h~Ag|dil$2(biYqpK6RwrR1*A=LTSzHDxGn!(xK0kYAk#~1A)O3Y_uqx< z;c!DTy`?Rrm*JWP%-8lO@pcQvaYgfW3;j2mzgrj`a{X+md$?Pe9Ky_+-9Fka#=6N^ zApPw2P`3zolc@kpp=%m&IaAjpB1_pPOL@M#bfLR?R9awn7=}^G0=v7_+NQe2bT^ri zjHb_Yi&!^VuITY@G1pDS1!OHSjI1MD0hLMX@5d|B1u`0ZNb*rP$e+_QX68szBF}}W}!?9|7{pyaC$7a4? zI~}-RI~}-Rn+dn;9CoCEWWbHfQo2Dqr9Bh!igh_EW45(}^QC@Ab-;nEHRPZse3PMo zS_;TjK&=JXQ$sAvOO@+?4L%}+JJDj?AW|th@{!^grx;l%op4l7$sjH}wG~iD0d*Eo zSAi(Mm)r%S>R#$85HI$`#|ug}MoZm2ZZ3*az+vU3QY+Wb|tx zHerR4rB7tosfD`9R9Lrt^j_hyW6@Fb-o(SAq@#T*fd}^3?N2#a6P~rCo6|l(T&xRE zW1F1Ro+Z=wiYPYfK}Inx>`snvzOFrr_;c*`XBmIql5V*ie+FJln%7SJ>W22hxP!C<$HL;iCPG^~kMvG$ib{LG_CH)*ls zSn1yxliM_+T(tJJ$t?y@ihtOkHs6cVz89r^Z!??R;clN#kPm0lg*|-K=3^P6$4!Iy zjA#J`;5wkWZbp(ziEp;q@w-L9O+&EjSTzk7z&Dw|U{H*?X@py?Vq3^9!fqNZ5EE`1 zD-e@z3d-QPBvDTD0ePt>F4Pr&b;ZnCq>5`Yr}{Utzfz+YYJC z4`-xz(FgK}0M@p`BwXnxY+h7A(=u6Yj~drO(Rz@g-#By}6rBfY<{Jn1LD6%NV#xO4 zJxB!G*38R`sBLvLa8URT(yT0|#re9PudbvUI4Fh=Qd~1^=B=h%E3K)qD;h z?QZRKk{IBIHP^pWo1a3#Jq_cYDP+5+4z*8zMa761Jyecb@!Zw8b)zWi=WbP-U$`1I zlAYh!sy4rIo!b1?Htm#@FCn90O0w@;>yQ?Iv*Ro6B;u%L#=|nbxAx&*7LoLxL%Of7 zLk8BubgKn*uZ+XIwoYw+T{_ze(`}Xy)aEy(QdXE=CY7IUkVApwbxntb^Dvdm(&(03 ze7O#b*284KqIVn?orkH4bvXiX9~M1_$-%n3WPOK)_b}C1sMbRDSRmh7cCoJfq6i$O z1`9P=$Z4S#3-UF6DRYn;TLlk`&|z{}s8t59xmZ`rdtOBjPaPJMhpEjXrVmqx1s}~u zW5{RnP9p-=U#x4mvai+LVKIN0x)36vg{V`Te~E@5$=WZ`8vSS;+QFXjbhY`Xo7Lu* zWlM%S=)8#Eq_7_rT&|P$$TP6^2wM-iQEgss#QzqAoV`%j#YTD8J9w82)4|y#3Cims&Ej_~3LtdEDrX_s8+Wg9`sY~O&sO8&(e0$jY72FZ8pkI1LUUKBq z2Opp2^AKDHuU2b$qpQ$5kwr+oN+@u zy;GjCY^sKih~XnNdZp5i9uZ?lXzYp}IwHbHD2Uh-*cn)DK7l)OQj<19+aRJx@WFGL znym7%BVzUlg%NsA3sZ!lOex>zBiFajpgb0_;hEZ8myzzuz^zrchsG^5A>(UXpp9Qo z5n0!5U)IHB6}H>#wu$R4_le^BXwpJcNVyD~ogro;etKkSXR0roMd~%03wp15mUd;R z&AZThHKM&~MCEQ=%eJ)M*B-w}(@3m?gWV`w`<_Cz`9=(rcg|g`8~lQz(v10wbqjna z$-URS_lbe~XhymxF4iq-=E?mB{r8E$efTCj>Yl%&s3)B4+x8RHM@I&ut zlY5B`6{gS2X0Lf49FbKS%&}wBIJn#a@8QDq1@`_s&AVJ$ayw*c$t5kFs!LqV=pHO%@YB$y7U9ctU>eNf(IKksScrK)_C^Ahs1A|EeeX#kFcE{9}L@r`_`>VxNrBM*YDFb z+@UK_^Hq5l4S!J=Kn3N&zuzO|MC7_^lrA>^gMirxRz<{~+u$KZbmsfRQdG+5&- zt&)Bi><`0lQghM9_qhK@;1*@KQrr@y%?OG6d=##6&GlxkHkb*F!EJ%v*2&S5CN-u%PpoLNwtH*8IBGozlala&uuDJUx+uKXy9ejRomlT~W)3mj1nVXZ=9jxdgt%dj<} z+Pn!V+cgO(Z%U;cLFsMASYuNv)yY(k15wA^R=p7>3zri!4mcCS+|=H)u1_t#T&1 z6*Ez+FJUSg?ky)N8kSM}?4`T1Nr&n)sX1aF-OH2A>0V6Uk$((QEH#RbeHo>(ie)kUNRzq1uX#;%T;$R$_mP@`%T<_Y-BF=GN@nQk zRhu1~%}2>nC@e>*7%5nfE=s$yah7E%5g+-((pR56fj)TxSSrH_II!!Z6mbHpyju(L zx2#@sqHIK{Sz9u&bydyU)dO1#$JZiYdMO^K(*j`HeR*-B^(f9S^aU0t+K!fX9If_k z#aRw+HH24@wa_rT9uW;9wX6~?#FRR)6%pFLM1-EBrJkeJqcXzSR>lrRWGle(Ol)iMxwMNwslpabaiZNVJ(u$D8cQ+$z;d~i=`#ATURZX zuAYVWHEN@w6#vp=skCHn>#C*F)pIG2N<3GIjWE^56{)K*&sSlduR>!sE`pW4vt?{7 zrz~uh%P9+6<#I}6P6_^{2bNP7x60*|#gxb9D>ZUSUVx4-@p+DF{{|G8u7(;4)kdr_ zHWmJNfs8c>RF6|Sc)9SEmAHVQnkQbW!{Lv$6j6dD%SlMCto z>T)cTjMXD!)yi0&W2Jq^s)uB(@)~L_G{ja>TcKfTJ#`dPXCZYVZqqWMHaeGONTBGQ z%bF#=D{%}d<75x+!vFnh<6*h4?23K$*R(qqF=9G)No_oqk#5(2fTPw7*4MPV;1!i# z51>Vjv9L;Q?AM~s9cyo0B)7Z=rOy+{^a-5wlbUbxSbN7J^}tux2j7>FfRTlbxKTTi zu7x$(2lik$QG}?*{{}XywWd9Q5Ox{jhe-B^l?a8e9}K~J7;sEGr+obUFhU|CK?!~fx7i+TPsl}s&m)i+XpXlqOK9tmb)(sGE?JQBFS4Cx-e6d)N*XYB`U>lrc`S0OwP)GTnzer|}hO7YtpvpoJPks7V>> z6>Wk&-Paymq(N9YBVB)nLYZX&ZOFkG=%Kz?1yXjhAeR9^SX&EC0F}^sDFTl z3uz>EY7wO0!r|qqxmKo+%2RtYb!t!9t8IBAU}y zILlK&A^W~W<akPK0smFz~fsRa}S952Wb3CyO?-DEIvRJSM=lqLV1uP$Xt)_ zZy?EAv)|3e3`kSKqknva}tE-uzBT{(-Y2ZiH7nkuAe1gh5pVb!jQ zrPt9iwP?~V9tz^;zT~3X__|!b(_s|(_2uf-`Jm`}kfQPe;2RmbEAE~LMc;!ogR}=8 zL?OM3T0O`DR`~)f$Xct%KDw7p9(hoVK1eZCn^(7}jZdMA4?pN9wee{=Br|_q=jR!_ zoFPXZ6q66qEYhCVLSWc6!_qUG5jOB;-4KVBlco5BV(vkTBkY0}0)w(ed;<(Qz@(%m z@j9AJS=TT0{WJ#~p2GOR+#f*x&&m9Y|7-r%eqrmUd8Apcg+TsQEWIG}w|@O!@~`a| z_5HMfuuWPBwJZbn)zZmYP1hN@rkLL76S@j>nS%k4mvD$cI_2r-w{UXv&OE||9t5AY6ct2{; z3=2h2Q0X6Cjr!ZSGCe61If6tI_>K!CT$Cjl?l5dV44Vt;@PAlsEX2LM8vkprG|e?% zV>0gjtJ=5)&RecD%k^+Bm(FsaTg3vB*{VgW^|m*BO$r`DX^=j3h*>AwPv_TlBXTr| z7NiC7TiFxs^-iSGiS3ou#_!&YTUwKD%9e|TeVTHYwoEeM6+SQNR+1iR2Q;r;h_wxg zV%z67Bs!|OqUZUpte9wLI^Y`CTvx*dwZ8Lf_~I%}YOXnI<6W>ID$Tho4+YkR7_+Qh z4Hp#UT^mvD*r6J=js-NANfxkzpu<+sYU2UeZq%fkQ0Fx1E|i`o!OjCIJLfK-@HAK0 zc_3wHA9AhHTvK*>VdnwZ*`&F`&UV=8dI)y5=b?9D0VcM?#CFt2H#^{#_pq=Xqh}T{ zO7uMxfr)p(M877%#346YofwIEt1nq`AVxJ5nYN!o-N?nljN36YqeDQOy-5 z-VPIIWwy7opV;_Wc;c7$7Ghs`KF7G&Wamtk>R?90I@3Oi@3jr(DyMU!BrRg++5 znI^%^{V6j8Fvy{~!p!|CGl$^Xpt+{Z9EO?uk-bZEg_(O%DR14G{jR{xitV|f?9wVx zEzaDdxm3edHk7DDBS_Mxxyoh)m1q=6-ii|$(p+)Jj&S1p&=KvE9ntI;SeiyDYOcKa zB=7L?<6`1C8Bu{JH6PrS)0(suF{?4kktMPhr59%brMDNQw|6b>UUoobTw>umtfifh zVPWV^C_N)~7*`vcQF>-gx(SszurmAIA}ph6E-1xvO+qO)qxc<~hSFV0nHUf zH_R#Dgrd7CRdn-M1`lekXa>TXgrb_zBox(6D5@!W`ZuDeqAZ}OZbVVthyiz;9X8>Y zXclk_Bv?R~vU!VXrR}|Tv zRFO^M6l*lsRFO^L6!)OWnlx7wStE+eg>Bv;rHX3;X?18WD6Ym-aZMww9?dmXTv4Re zh~gU1Tv1$uoa!zV*RE7?^`Yp8HCGhZs3zfDf|`Wl+J)j8A3$;K%*IX30$S{y=p=To zMftIV92n0a|5?^hz2;bu>m##Y|zfQkUz+@`#>c`U`lXF{{VE_mFU{ znq=HkIT9PiUE^YHqwEFc$4S~A799_hX(dA7bk@O&4fx-PXniu^TI4+-g^h9~IfnRt z*3d`}v4APxh!i$R{~-K>tieCb0{kbWuul4i;6KG0{G%-3A(gwrE7Q#@KTsR5#`(|T zgJh88T11k2e7NEB4=d9xGDHzHCD1w#f-?L&^iE=aSJb&u5#q$yJ4>ZE{uNfSk{EN?%N8FE1%L zw_%PLmrDxnM@n0^RS(+a%(9${SE>ipZ=OXl%BOP{)M8;LbFYN zp}_lyFjidAe2<8>Z~Xj^2vY@Fk>F-Qww0++*7DIuM9<|=*7D#ZqHi0Oed9g;i14DF zJNR!@j;l9%&Hqo=`^Us}-Fg4gkVBurx>&{v^8jXs8MuRIydD%BGYVCSJvL)Aw#W9^ z9^$b>6sk}aX<3D8slsZBmPgBOCJl*6Lu=BIh9tNp4XtrQTe2Y=(u`BG#tqr<)$&NJ z#8=|0hux+7W%cFRhd#^meZS8+ckWHr{eutZe(w96d*__j`J8iq|1W)FV~K~hi+_#% zS?6vq{dH*huhrW=2Obvn`;26jXxL|T9~6z);z)sYM7+jq8_X8@cVyfA>(JI;N8iJ* z7K z8NJAsxzF0t4)X-^d4kV`!p}tGtk;Q$MQWeXUM14|j6US)$>(uZB2Odp46>5jp9yt5 z6Dk2FWqIyiK%ej&HheiKBF#vT+;NuA?5v94p%m--Ba=V9VE_1Ju>bdU$ zn)9q&q%!wi@I2wVZh_)D2aUlhF|yAn4||^Y%-%v1)kPan$FiY#HmYt2DtXWtsuH97 zi~!XCV5?J7{ZCM*v!P5jx>$>vEI(olSBbHG#x!>4A8m05#ogqmGaKs4%BSoDM~u-b zF}}~3fi~{4#k~~EU)q-q^=G3IwrKc>F)f)#yTI*h9^w-RDqGQ(eU0IFk*{W}_Yajmaa% zOqH14XUs!A987mA#S;bsUMdv+T|z zVip)qJ9O(THOt?(kqvETqdhFO_lPlHCFb@SODJ{Dp|(rik)@{hL*0Kw3bV%(Y8)T7_EOO$ASVECI4xL?O?AcKK+2|CDoIWC!_Ze#_vZ%m@ z#x61?i!5i6vq!`ViY#^L+Mcz3P5ZN<4irgU?ufBmC06$t>nOF+q3)(yR#VTjq26bs zjl^Z)h_PBF*7g}2P{$qW0jh`DRM}@kgU?1+xVx)IjP)w9zR%c%It8^y-*-0htiC&M z^jUd#Ui-twW|iSZFH0Brz&PIL^F$j>J59U*K`CBvjQfW%7GGuL@5iuRRPa?+8WuNQ zSlo1BagC{E7sSgh1g`}b%3E+Dmd&{i(L7AVDrr#EgbRUc!u2)6j8cYN7?1n7q7Tn9 zqVq^|6#K$b+FjU}1kFGC@rR%E57@7Nz(zj9|Ie_+JJ|Fc?8BQ--+=DN_J(*x2VD|Bl$)=brqI*uua(P1U1R1s;55_B+O>I6k6_hm#9TJig1Q!?6*QU$?{Z z>UYqJGAyrsC$#<@9hSF_7&}#Bd!JDl@jUSjyA`*-qg!$NJF*q~9ySX7MmU^rX4i94 zfO{+ppVJ|=|6!xZZ$xZOvC`lk%aZ4GknVZdDE1pcTT`wz{~q!_r}ruFoKfO8iXvi% zU*FCAbMxH4yCcsDSEX9Y{X1ujziW2=tGnqrQAqE?zpHQ4!izh(pZF%)=$pXen`pmp z{;B7Q!yf#h?L0sL7d{Fqx}Fn7IMVCE*MazPW_;+TqVG9T4A+2i$w}jrX3d6XkF%Di>y%1!eIE@x32;cX#4Jd?HAuk`LnBLNb+l5FaN(>MOor*uVW; z#aSGrJ(nw>6Q|`02UU`<=TV1xdP0T)#_b_RtlRA3gG7ZxhP9*XAoV2)+tAD5nQQnL*u_4M&ZjUj!-*Zv^}2u>)HNsq7WLzalTv8>`A+1Bo^b1xkWL^lhy`XDh_NdY27l}%vA%ZR6Z`VR6<+AH_y%6et zK{1v)YV`O;veIazy3VeJz85rO{VzzyrjHtZexoT&RV|Fi2UE5e2B38kw9X*TXB1S7 zy&zI-$`{6jXD%dz?9>Y)&305S1lfX$xfetRu6gA`crB<{d_lCqwX9qWn`Nsni1td+ zQHf+1J`G;h`yjqimJfllhId}*E}#=NTzE|-QNz2eFQgS;bFUudx$&K^mR@t0UlX0! zL~egK3eyvp;5Af>yw)GS7K&Vpt{+82+Bj+q_(fNx(G)@9e=0w&wg*r)T_dX9C?l>m zwu`7HrMCy(wDQW{v3*od2-=lP_KwbL@+}Y$b}O$8uRBNaItrYQQ7%Ui8Q`v!{4dVH zu7w7#=>{&08Ck#Rt2AQVH%AZ|q1;RP=(W(;wP;BUzoax~4EaTWr4gqZm|MSllIj>E z@zk}@^tC7hu{UOn_{Bh_k)ZgJEuPDZbJs%i*VN%rFlLPTMYhsNQvG$CouzANlatXups2nN#$x4={F$NQ(8Ruf0spOCtsr00W3JSz1$(rJt_IiA! zL}s3S(DR8*%suG2E)%&2@u?e`nt#x9Qzm-q@$Dg*TEL_GM6#f4@j=gvGSOL&k73Ew z(u1BmGO_%i=dMhwJc#e6$c%SF}UA%WAVVa#WU&8cv#wz~Q z^S*Hk7p~=6d7kXH*%kBM_IJs3dv|%>mp61gZT7@`Py2hM7a@OF^@eHo#(W#5zc*I# zjOYEb1L!)klrnrrZdDaI@D#X#$H$>tZu15(^Z@n}p;REkN6OI?9b#oyIEz2v*Hrw_!81-}swLxj3`^AJkMf4pJ!{ilKEw~_uf z(x(90sTTbDhw%3(aCqF@CivR~ADsf^C-G@TCKdWSM1P0quhx+LHnmp6?>YwfUB>|b zY7OXzQTP`g1OA2DulO%I2L6k*OLc(aW9R_I$It;*YtRE=R2L{chAvR5{pbV3YMWLk zC_lzdP<{-ZV6}$5U|g-&-N1Vc-N38Xq93f*=#CIPhK>+aeyb;hkFh6&kD({5*03wg ztD>yFz;8+}e%IY_4A-vrXDs}^Y%QD7)$fAQ4l>$wOsrLk^-2`>k^BT@wPq~991bG4 zzUw4%qf%@#Paer2lS##5&oQvra||r5NEQdwTFqiFS?ncX zD`XKyvDilz`?O!N*iRPwwM(%$Ko$qc+zMHQQ7jIU#X;={i?eE*7K=lY#UWC)B3WEe z>otqRWN}!n1&b>di=$+5RQW9y$0UnmWN}5ZxT%V=Smc*Ow_kEkg2mFS1xP zjMnNTi_^zMu~(FMQP>?fjm2X9mss=;J6SCCigM=3v)J%O79+!X7QJ2(p!88Iip9&m z#7-0UMzIt0iZI20W&`OArio!2+z55=**Yh<>0uk(dg?y1S!^HHEOrb_7AKDxt9~OH zrmBplnTB}0$Hn)!_-9N#%JzP=1qLj_C>Gbr;yPKpOB6@(l~kk@i5nzwgCyP+hww-5 zmT7Js^KF^_E#&Ff8cn}H_BC8;ma8oe`90X+_uP@=I27NXwm57g zCdG#_ZkO&ibYwiv$aowy-jUN&d@vU&MPtu##>L~H@eXLbW6{`moHX_+zoN1K zIB4uAWp_a19ZloFanLxRyo$ywY0N5*qH&Nk4wAb&pz)5TahNm?D=%ma;#0hyJDSE3 z(l|oy?tsQSn#M8GI3~RojpLHWang8)G$v#zlE(V5IdR-qANEg38t;(Cj9hKe$WQ&Y zf8RX~8dvwHEE-d6rnUSmvitjpL)}3%((G~3;T4@;d=%J?KmC9{#E!wa|NG=`{y5|d z$3+*kdHB*S*C8E}Qfp?}?G-&xAG2V|P;C$6W8crC+Upg4P=4#)s7`+0MztTZYgU16 zEYOMS?DuU{2fQK+@pVhwPO)<&Utle$Xguf@L(sl&gSz~E4eHAGC8*QKjUB&{4ntIi zLiyK>KY()$>1#-T3mD*b={v_B!r!B)q_5%cafFb^O;S4U78Hg4&1JPv;<1oyH6Tr=Yv{?HUr6tXvv_!iUrlrlmw6qzR zE^`=%VeT8Iw;7;%wI8H*sBKDAaa=9Dtf3|N=tFy5oq>tQ_D43vXvEr#)BYZ#9- z1LlbGTf=yLGh=IgGiY9x!}y3Q$^w?3dmg*)Zp2Qk?Qge$?O# z()i+@I{Ya{hso%$@`8>Lxu<*gU|YA%5fV5;(q1gXp330(v^hrp#-z7G5AEX;zj5OC zq7T7zR+i$^$M*b+cW%TziQ?Dy7h3T3uz~EcdufDYcO%E{>1HwO6?0yGZreIS@1?q) zBfUIAUmFQE9FBH#$~oICa$Yg-6$@Umh&;XdJcD1%vm^8LFi);oEP2H;)N6V5&==Lk zFLMjMR4+7(6|Y!@I#PhQ!|-%PS7fQV{AKqte$s~hlZLiI~KPZUGG2)T8!IQz2h zU4t*n-nHCpln0FVFjZwVhgdvPJ@+-!0PYShc5pFxA7~BYwNa>ohiD#ULsZZlra8k_ z#NryR^}=AW7gIf$C=GgGDP9x=W1XlO|59ylexbHYe4-S4|A6&dzf{>fc4e1C_6H6u zihf{Mv=_4c@Hp}1dM^KgUC#lZ2txdtwdu((S9ACW1WH$P*e4=T-?eMG;Rm{w8-E~c zd9vB?28=e;@?BKGUDWYw`2QNJ^tH#ZPe@~QeeuswyMKntec&Pdspyr8BYLIch+a6= ziSX5fPtY^Th*1(Y({W!(*q@Fgg1JnDFqbJ~SZUbI#C@e|+T(~}E)zivMn$oXIHFjG_Ny?~8AllF)UL;HbyMxi9u=Uv;s{V(aRexrc|UhV zJ~oEak8y;k9_7cyB|HZhHhbf~rm(*^&I1gWS&2E_vMQ_6It3Z;kFWl~JrKvePWuBm z0WDAKO|cO+e}KRz zx-RQJHpi06Uy-x;VV326g=Mihr{f~#Ga>;IXCZm^a$lw;@`_DM!Y7hcKWE`GPqib8 zG`+$oG8aerxwuH-aW=}|vE&Ps+fgL>NrgJ2qOGS2S8}uSm28;zoVI=m=9) zN7KThqcm4wo-3nirg;qJ&|aE@G-|50O2AeL7|yB#u;EuaTuc&!_slgCvqoZ;3&=I>D)$>jX$!l2f$}wO&uv3QvH;LbVoCwIyq+R(t{+7AwCsRVz8csanYi zjFn4rs#Y>8f4ntS>#i?7Q9kM}KY?ch_IFsLFLf zuTS(*`b|svpU&WP^Vg}VT0fPJd0OA72C;usf>?gSXbc#gVXDelDBJX#EijLB@$qJw z$6zjV@iG@NPlM5s?gS&<34nN$9L|i^yO2^CrcVIF^a)^i6G85#HBZZ&;5;oO{nk9K z?F8p(ZPI7OxD$+VCxGcqgt(hlgge0qr@T7AonU}d9))Pv2_V{a0*KzkJng2Qr}dlw zpgqb9K8s)Fp6Yp8FY)UoW;ZcUyQ$}C{e-VydaZfdfMjog?A_!%tzMSmFNBWPCg! z27E>=AhJHADS7)?L5!-_Polk7xi(rHF-h|`NXhKj37fif1B|Z zGuT&uvaj+|ML#o4pAe%yF$Q%OPujv%(|nDYD`}#ho7)J;F!)*9u2VW3Z?iy0xSW2~ z*+0g8Vge-|vKZZ=+K!gFSMxYe`ot8JFWtK%Exu}Zq-n@*Sp~X$DA3uJR$sNd(u_~c zLj0~JE~I!9m5dWWvvL@EHMISz>>{ft#GKDa1VqkfbVocl|A!s43xBBlO3@ExUl~4O zBm+iQ*mLur_Ihsq3;uqGKRgP0^WA3rJ%+tQ`WDhJfxDMl@be$SpXw<)>?u3!DY!O@ zu9Em+r;AC|S6nC2S6nC2R~BW+&ZxCIWEY-9Uno3@zOcxU4Z~bdnMEhj8;Z1Fb%)}U z=nlo&rTRn3N%V)3ljskN4B0TueZwq2i5^j|{pb=yYMWNb_MT+O_MSwqSd<}qOs&@; zJ8%+xCZN_LWG`AFJA4woCanBc$c~(3$c~&uw^@`SJEw}WLU#ShhLa0FbT^*F9a{T4 zt)5ZBMzcfq$`29L1_*5Iq?q@K1s@7~$4%qWNR~2(1If)FI+0xTi6!RAA6=JIZZqk6 zEzjh#PpnXS;@(gezh*44D_rmBqPO4H2LV=&*~;y1W>g6(~x1qM+YMzPp)5-j$d1dG>+ zV)tvME~FHRy(F=hBwpv0!+yC=bJ#}?`v}){V0c|q*iQ=kl~+MHKnMqvM=_WsgITh6 z9SC061P+nFA>{>tGjdxNf5Vc$VUl#6*9+(6T20>w=^K&j0N-^P<8fq7_Qs^wLT_B6 zH%|1f^HSl4EX4vZ8<{w{^_qJU;JHGj7I*mp-C(O78uWORt+&72gQKBFxl zwtSxJ|Dum&vyr)zrDN_K3MsS;iLj6$3t3|!;jz%l$>{1y6tZ?wZ2OGPfY?DHYY4g5 z*YR?L>l-wiG+Q*=1-mrWjV#GQb#lx}wW~@LR(Y;B;l62gDB481O?BH?p6a41Q4A?> zh`-mIrE|=tx&*q#e33C(A&ORcRlIl12D`LMltaCmSI4Q&;+G@Xy0-D#2jy?)e59mB zc&m)=fCwN*0te(4;3H!i@X;{|c) z@85%M-8Qo=2q)PVgqlzA!1^a;%<;52)Pis_B)yf~r&!n=Zt=y!{^1r*@jj`>6tD0N zRzfv1;2xck77lbHEr>Rsn20u|a;>Q+fTJyAE#5cW<1M&PE7V{`n~ZGPHxMWSvR&T@ zO|?Xu!i+X8B2i@w1VpmR^GO&-#xQ;w>%3PdvpOO};tgkHNa1lVWQtd{UC$dfz#Ubh6XN`Qt%u?P{7giJ2!Ci+{!jwE z+#7Ze?mnj>*7sR#NYIcnFU`J{Z+Wx z=gmeJmq^`E#0(^SLlJ)i zkiQ{OG0IKtIw%IQsd2R_`P3--QDcJrs4-D7MU8Pl3_&xaG;)Y<44X{}Ut`$cl&Bbs zK(qT04R@y}V#X4_o`^qYtzupEM$CA^*BkN2EiW&gc1O%a!q*+~CoJzD!@C?ZlL_B) z$e&D9taAtU92CRYflajoGSqYj%@lG5{i#I74mEoZi4kZD$7S8ipn?mX=>#uyrV|w< z^Z#yGqCgJOh_%n%$AT^$^i7{v*N+XXoJ0fOV!q*Y;w6dNG%_4zB4&HSmx=h>6BSvuPsKqRZlWz>b|idl5r2oZ>S1`>BW7p9*B5d5-*68nc-v+#Zrkj<;ohpj>50(1H9ib5 zaN37Ky*F^6Fu}>_XhKZjDaR^o_b>i)m%Tyk7^rLVw396>=C8-M|wml`H_s#!wF*o0Xj@o9Zd@iW<)(Eo?GiN z-`WlH=Vdg_G$g8(i>+L&ER-GGScS zeg)$SVO-HJz}T${(lD+P##O@DEn)0eYb_YpB#djMtD7*wXc*TejO%)hhH*o}xS^dI z#?8c5V*E$$?F3$%5?ZkM8)pUE{7wG|EKQR?*D0}uXX2``t$%dWSj|4c98Uh`nMd)5 zr|2+;={CzO@g&7g{+54a^H=B>MO2@+)KgSD`CI>y&0n!!lu(^N%ATg$$=~*mocxvg zMLG4)TcyuXZ?jbN<2*}VJe)--&L~;a>(U=FfY=) zv>OJ;=`hVS1mZjw&vUU%u~dHwEY+U^ONf79DgEO`7n6#mhErgv;S^ZvB1OprCwE#W+`?GEX7WNr7p=*R;{&Iil1U&i=P5ZU1SMHvy?c+z?RT! zG)u`-3~Wj5)GVb=rB6-%*qy0-`3C&VqLb8-OWy}POp)gf-G%YYc z-3xP*=GJbQzbvC^rXdiIaq%%O`V~tveYSA8d7U5mc}JZcgW-lzwWn6nsmw6n;yxG;_+B3mC(A5Y7Cwj-~|$NB*50 z=sL|G?}owMIWWyM1mY4GFL6<`v`LmW$r9#jV5#G+eixI9r7g0wML>$l5{zPLn=EZ> zzhY^JEbV9)Sjwt`G)u12V99kFEEP+ZM$}r1rNYyUONFPwQZZSA(JU36W?U-LYcxy6 zrx}-uweu+q*8R0+$!TAIt-s_n58#W@hx}o zG;W9s^;__5utjY6R^I|hX&$pjPKyCNf6L$wpW;7^?Jjr+v}^{-fZR~7U& zd<{Rz!#C*{Q6`QZ`hWXPnnr0dj zbe4-}xmckBS=(vA*LE84;gA9F_5Wnl#iW9-{WRcfKMnYr2p^1suj4e}>(G7$U*~DS z*Qs5AZ(J3m;p-xNU4*Ym!Z)qfTJUvC__|3`6XAo=@byUedh{9%U$2C(S35O)eGPuy9+76^@6uobceY}mGc0&oWS_~FoLG3^&Ke(Ve) z9gNjxMamutnasVO#KvMXK{h z0HstrVQYHZ3EPriEK~ocwd3W~+ps0y&cn8XXQ?Q4M7qq|8n(8#C2ZN##$v!24O3M| z(*lDa*TmU;6KC_-voe}y8WMxqJPa50Y<`Zg%@H;nsRFiq83ELuJ>yWT5sI?YsOA@vv($hiMU^HyY61HW%M#Huu zVO!BoJ!-C=UOT<{wtF2c1w+dgOI}v6&5~;pT*Ubjl+Dv(%`evd*w!sKjTN{8%;99I zlzCL(+VG1_=J4J7%wb^C25E~r%;T+7SSWSOw02pTHULgL59_XL7~Gq~a%d2K)rifS-2q1Ecr}p8-E%?N|In&VZkY zc99=dkmjfU4EU)(1Af{SKWeSTPs16GlnrOVPdoX6(fl-?;Yiu2*Jys4&Tyn`(oW4! z>`eU3=A=7u2G0wJRxExZU*hMdU}284uGAS(91tY|Y^xBbs%gt~Bi8>Xf|yGYR2mTF z%mac{i#Jg0j7Gtq+7Nkh<%sI9Tk1xtohUW@)J6%nmW8Q)#!@#??Tkk8pE_y6{bTji z-?a2G>g{Nh{%M}3hJa|K6vw<4P3=F`GVqC4p-$r12{S2Hho4k1w<@> z!v4ceV}+{(b2!6Qgn1Nf@qkD$hiNr%l42)pO+T|?O9n)W>ihv?ifSip$)DMhlMT8R~7=x_*|2ts@{hDRo>L>HV38t?y?Nw#hTbdcc?n zQ&mUP0)qp_MjkLW@_-S0Rz}lILt=2i2*X8Fg|0Qiwno@+3Ky`={A|_5q=Idou&tAz zHo^v@VA~*U8``g6+azq8+6CBFR6!cHEyA`%*xDp)8)~fu+qQ&loAk61HW&@tj)ZMT zuhFo%k_=t0q>}5?JINC+bs3m%(FBc5F?a2Sn9v2SsJ)0St?E%n*n1oOjR9C3(VVl zVE|N{d2=_+e=DPDrXdiIa`90v>cACGf~9y8EaAccSem=J=3-K@lt_Z5L=r4z$P$cV zDVYRIN$poGrIKJNrCnfYO%(MInZwCa6Z0sR#sgx4Ir3BTK8l?zC8unbCIe!M>im?vpK2#dZBsT&(*ZF< zb$&`dK(&*lt|=!=vjH(j{p;3_XQ{VY>YK{5lnaP?O7Gf(V0KEgG&m($>Pi~h0b?pm zRUJ(W3{E~|I4{rez|#EGx{FE0(gazWARuY7 z1fy7*BukUpuUMKQOHvm9KrAyy{zTR=#ZH#ew``VH0%Dcw{E4g)s+}x#+_G6(3y5{9^Cz-Ksdlo| zbIZxnMnG&*pJ!=|dYh$zTX~kY0%Ds|$HkhVTbiZeTau-Pq~WSIro&X#(X_yTr8HSe zlO^m~8BH?{fxw9@7%u7)S%qi8QsG&!go~J9Y4O&Ei%G>&(OIxmbQUb7$P$cVsrW2d zD%O6*Qps7cRH9vAX-gHPSt>mXmP*fprIci;@aJ+f7E9%48JEh>f~6E$g3&B_&oVA~ z^%~7m;4H_ufOcw@f@i~L!#{UN&f@)7p$&_raaOR+Qsd9T#UkTU!&$Kt5Uy%$3oOA{ zEKM+nlcgl{D3%JVMGPL|q!ZnIQeElQ})$E7K%oh)_z+-9k?T9i|rk4w{3 zJ6Y=cxsxStwFpq3KUFY8z0K0#&+{w=t3{Yn2TLPA*DQ_xT(T57YZO%*GhwRgXj))^ zQHrMuQan|FJu9PWrXdiBOE6s2ajAnWb&w@o8V5_uKOb;0$)?8u6M4$-I_~6Ms zwN?`Kq}fH%x`BCVUGb!)#Ot%s!bXctH;en)P`*n`dBDs-=8sh4mRag2k} zEcHp2`t%yjQom%WUpt>d83Xvl*IC~HKJj&ylk*~T@7HKpNIGl|p7o`}{y}S%J}EkM zcKB@k9rp;}i-iU(_-5H6Hhk%K08)y9Z0xLvREzp*l>0k3jWt=HV-6>Loy?=)Yp52D z%u#8PnxohWU++6Md`;CNMm5ebsN=|as-5s<-?8C~SBnJI-?r2XR6F4tdB+J~vRb65 zf7Q}2Qg6dI@lGDTbhXG(`iVU#PQRn!n|VjVH*(e}sWxWARMpY6z~Fpnk%^n~ip)26 z!+g7prkRF};5-8i7c0xqFu3YW_!bFYgM@GEopBeF3ce-6w?z0FBz%R_a;=7MneZ)> zs0P9Zqu^U1d@I_o;9DhptJ($l!m1z(zBLKo8fj`Ed@vfmbqU|PUZdgLknnA2r-pA+ z!nY|2YXE$>>ZvxeSDzH!I=g+gZQ8v9*y5pa3$`V;fDK#MG{EWSNzuY{qODrAS7T=o z>0qojTV@U?Z2iomVC$$Boy?IxGF+k93ER-L4O>^W=%zYWYLTVX5$P7DHEfI161JVQMtQX{7pAI? zrUeE;uEBhZ=Iz}uPnXd&(~t?A%B=R=qS(pO$S-V`Mytgb)%n1+O|_Gy ziC@?(jaQ2as`G(shiWHFGrw@MG+8aCsQ;d|FD^gyHcRur$g?zEEoLbF&<pskdQU z{be4uwQ8|W>H9Wp8^6@BZT?ciHh0blR~z$Ts_JN3VDRPodh>fU*LTCM2>Jz>HI zqhafju=VIQ8n#{uTd#H!w)lRt@4PR*-`^);3rpC>)kZAX`p*xXpPX@L0b4pWWx>|K z7O-KPodGzjgl*`&@YaYx4R!`oG8pUbu14l?!nVjf3btU42s1~1O4dZN6SmbE8@5P| zsHZwVC5ut*gl%)ihOMDSG*X?PlEtZZ!sdF{30qT*h*6)Pk|n6OVJmqz4_mxOBq()E z$-M7s*aGiL*s|x1#%g0ROjR9C3k;@YVNS`yoRVSB%4nKtNDQWAFkIAAvN^&wN7!&r zHx54A-VGKo$+pI;k#gsKcz82MN;YcnIL=0m#O<~@e;!Y|%qzcs!NkIOJbJUBT=Hq0 zV8mQJ?+Zr!i^?e<$oaOpL@bxi;{l(Inmu?la7b;Ecy%2ZdAD|6Jwh@1ZrN6iF%dCV z@chKM(s*{;uTg#%Pr7XL0g%OaLrd>QOL#Nz#(5)FEs`}NRpXw0SEOs)xpzgT#=Y>a zXsZ$JHO6d2bkw+4-xZxT*!o$w=&BLjHKL~`UvB>al)J&3jJMesr7U*)yy&I=FWfXy zn)5K{Ssxc@F45q_eH%5GY4A-6>uO#eN{dIVuGj-pO>@8=w(`(8c!A;&WhcJyh)C>j z@{fqb|3-q42pjDf;v$sR(X_xE-U}0@d1yDxfijwAn#W+Oxme9bImE5v(TtRD6^~}5 zD*FD$6E_PEh`t&;oAoyV7ng{`3Lex*`Bw0tMyg_n8gWqcLo=c@5{%`D*^u%rNBj+` zig9Yba!?FFGpRK436Z6U*_iSzMf{DaiWzF$2SpZ|Ii-;S2-Bjb6sJW^sfq<^b{!Cd z&@3s9971ucRV>9@tzxN)RcefbVhEabrIC++EaGX7ly4DFbEGP^sM&o$3`4V{G;*@m z7B&+pUt8FpNL3WQ2hE-XVg#C!_vCMvVQ(Q~CR4tJh(DRC@KUq)fEa})s5J5{$9%+0 zrF`=de=1c`PtE-gi7{vzl}0|rk&Bq=lrIaZx2G6@+fx<&)Knf6 zQ_y6Urjl)n89_&iGlGs(#V|F#17aGQQKgY@BuIzN&J@qybfzjMsPP{ZGtf*aji2Sr zM$E31Z#LrZN>$8KQ+-g(LX%UPYHFqL1uiFK80x3mqIkV#b8!C zTUvk=3*Iu#{uEyr(Vs%#xrH|+-jcxL~!0?r;j>ZCH8KbA%%)JV!W^!gGYT@X+!t3HS|j zEQRL?$CMY(5q8Rb-L(hXdfFUM@u(w(sC#QS&iVDqbrR_J%!w4j?1Wsm_mt%$(`qfMb8`Y;2ZK`c0=0Pfze^JMr@&o@~_xMETvFH z>|asD%4}#O72RYJTPd*(-Qa(@mu_9^cBpe*5IfKX-EPmVuzQ#1R)nUWrh%rBrims- z6Q>#aFEGP2BQ&ElV>IJ56Eu@FUJPir0yIIIFinJ}o~D7Ok*0|zMpImf_A4&DfR_?= zyf0iPKGFLATA?Qu0b>OfJ@1P`xcZa}Z^hqMj~ta>@XV;xQiJCMiLUp8XI#0K8$3Cc z3S96^Fh!7q7XWhb0ziffB+tA*?P5}+9KJx5!xw<^1mFBLp=N=DK{Il}HyHFs)EYf7 z*IxiJ^~xm&W$RANh^8n2un#247 zkDCK*^Z_q;AJ$*^bL>g>kmyc)lH1WIL{?HM$*F*^aBqWwqm)Y{xa_ z)a|&=c3fxUjI$kKR6B049XGUJwc{q+aZ|fgJ8rQZx7c3eY)2T?jyr6}9qmUuuBxA6 zwWI4IJFn{^+HqXA+ObfrMLUjL?O1#f?O3e*Ry&qlWallph;|&8?N~Y| zYt3rM(u?f8r5D+G$7MSPmB4Dp@{8=eUIF^pE zaCFgecF}Qm(Q$UsajT1lFQRF~7typIuw^^uf-aA)B#-&G-RB@RlsaYQ#?2h@G;HK41VY{E!uBHDQ-*!Y;L%Em$g7 z*UAex-n#CKJr}(nx_dA3Ay;qR!v5fg?zJGIcqnL{I+$b=H++Z*hkOxvP-V@;TufP2c39Z3XG5DAsyPMBpvp5LsB0)UxI*}BAbx$A?uXnG}ZQjd;5p^ z1NWFIFs=UpZ&kByQFfkd==#t;*O1_zm=yPaceZD32L?FB-$u#&VddGMYmy9;sfu`veBe zb#k$ji{Au8c$wP=4?ToG^)7@N_JkSs1k7#F6_!7ob1|v=!mR8Iv!r>3L2f1={E}u{y?@>=}3AF=GX}O?Hk= z<+pmrmh2r{>>V>Q$aSistp2er`^UEI05dYk^(ukYLv~~j+0g=ak*pHrgWMd!82+_m zhBET&(CDwDgA8)6OQOv*Myf@-X{<%C4+wQI_tUUK4zlhZH;XT!ZHq6VZ83vI+s^)a zpnyqKSJ#2uuWLJgFJE#o|Ld}~ps^k?O8+auh0?fpLx>aB7It|=*%1|;5a1OU+c^6R zgI8c|bKI0)$5OAr*u>83S72=Y+B&~6UTthfD6OMuVa_s|W}3%fD!Ew6#rv7M{}7Dv z5Dj_7TlE?*@vVA|mntG3d3J&Y4~Y&FP5seg0hb6uNuAkr$yZY6Z@N?wqedJMozNtd zMn&@jX6%x0@PI#dsUl4c&Tn)<)21|EVL90YX8e*bd%z#RRMAO|`+(?%rdw&`;a^dm znYiRDs`Do#*p7WExb*`}K#_ran5n9IWmBeQ5flXpqyC%q3&8+SrPSK2!9Y$hQlR`3HCHp?LrwyWf3z z@uRQz{ay@U2bMpYD1aaRO`Pceee=NY8Eaj&I}K|exeKE>5ZCJuBDAaI?hsC==wuXG zcOOF5?C+ZgnRU8mx+Wbg&bf<_w=^fq-d#(T3DwZ=n}_8Fymi4`IOkq&aIZCRzlFCpmkUP2^m6^AMc2Du6_ z2w!YJK30$OUv$Wm>ft)G?~*TE=kL3OV9~nk6#iI7q|O|;`vOo1-juN#OXd^^z^K_pS6c_icf)#Y8SvFNtZ$p0;K7MjPcuH!0h?BoNtK|H_ux8;#42?oj4R zi&@C7+cJBjDY?<2G-SnTF$dY3w#?pWo7`wAW#ws+gY0cv)_L24q3d?2`*t)ySukxZ z;@Yff6xVrLKXi!mZP6z;9ig~BEf!GbU0arAnG%4(+o7S`(MHOe(#A5b;F?AW%KY!P zc$8v^!PxE4`0Z$%;zZiO1=%IjD24d{wZ&5uOBkkahh}a^QxvDu1}@1in?^arF1%&b z`s!hh>PenQn!g=dxE*b$x+86@SBn+X@IsAOHs{r`JhscXLo2tVT~v3c#j0rp>ckp; zVw=k?*3Eo|wve^wo3}%~>1ZD_^ryuJr2US9kF7bR;ddOrrtPoI`4F-TQH9EFB%EbRsRbvGrAl&fa?X<51+|=oEF+X|ZD( zO(?P$FIlzfE0N#P#*ahEy67yWb7|oUio&3$HRzD0@|`#FaVT9Eou_mmEsCIPbm*4S zR)eKK4lSpnE7Yx~MKN?4htA$~yWI3TbsK3>0v#sK`CYWP+a6Luyy}@W&xd()G0(@oUHT15o9;`{8MY;Si)ZZ|<)vQ^YW7k23E?dIfm z)6`{JMFVtcht96*MOoGD)OECqM(BDRI=iY@WL0-j*WD_bpvyXRy{%|s+1uAY4)wK0 z`>7jf6*1^096EcuTXMUD)D5+YICOIkoxNSxZ-~|ib)&5!0o{^AXK%OoH{9+xbrY>3 z3Eh@MSNiJfYMyZK=>KcE; z&c8_AQme>7*K!`fw)y3Bh18qFnagOW+E7^GxSr6B3K z@2fNyP% z;`_oUIH9sZ@#Z6Syz&XploVcuy6Cd#3yOZKpSRTARBwC& zwfx-l<|m=8Pofzf8I@cX13{y{Mr4CV2W#P1ZW<5G*I=&kH(raBd%0r*2pqaevn+p1qmvPc#h<6gfu+&`8Okeipg8sB#a{|sC)687< z?clxsmn*hwA>I2pF6gWB)J;Rv!M4lompA{;-Eo_+%%Om(fnDu!diJUZJCERAyHJXQMj?x_44TEzbFo#fqkDEi}V~BhJ9`bQ#+r^~fW0-slv(X31 z2aMulgnW!>zv5$*e2i+B;$w__jFE#u@&Tjxm>?e$+D|^zHZ>oU+!Ic3FS;7FLU?|D}h9d0;4C88>8iwKw zU?|Q2hOC5PTCKHUD9JEblw<%ymN39*7|JsY7Ug=4hQXU*u<&LWEV2@YWmTR9Lm(5( ztS-328JzS9?c5874cV|AgrPnoW`ZaOFu?d|9=azCuDcExW|`#=z)*bG3Bw$f_k^MR zZXSjlMGhE(cQp**yApwqCk7_x*ROBk|*AxjvrUu853hExVHq%wd3 zLk(bPyXz`oQo)eU0ETo1Fbog|7zINn0~j*euV84)0ERa0QZTd=hITgk0AYYpFmw`z zPVEN_!)luvhAzU;MHmJo4C8981w*%lp_@%UKp0>&480PDUcE-c&?jN&lQ0ZO80J-Z z77YEFfz0AvcNQ>og)VVEKen1KL>6oMHn_SVmXLS0tOh9=HYw7uqyNDVPb_@ z{s0Uczja22RVwcZ!?q2>8buBm3P05_6n!dTSkD+8HO6+BD%Lt+=qC*QgrT1>^b>}D z!hroMqfwEe#e0irt@jpsZp#6%= zEV;~TmkLsYR}iEIuOLYEF-XBM_YHIS3WC(I_9IA*sBP*XH9~|(h;W|_QWI*e6{JS5 zaQZTO1wpEhK?;VY;#g<=3a2mQdW{ZJ6Oz0MNnW1}QVXg)D@aXVnYyyH=$;0Iy`iFe z1*z3V2B~faso5){ycV0p;SJ3FGdWH8Qt+Humc|v7Y;c(kryMmJzYs#-rr>tMW>6CTllBZL?ZElc| zjVm}EGs|xTz_8r%u(@@`S046n=`~-)ryeE)T?Ym~t1bNB@+$byXJu1C5w115>Wp4o z2p>_qb-(?n!q{gB7mfcL{cZfS(8OoaTo8>_bk*pq5s_M>zYZH~al@SAPM@JUOLLwE zj~C4H9URv6^!&l6qhX*3?SVP^h0Ey6*s8vazM`rgj|q&_7=zs2QE6I`Ig12kc!kv+4s&TPEu>#XxPUae@L<|~IpBQ#A)Bl}+mF2Y~+b>JfW)rtf)?uSGZ zG%2N#Lq&U?8N2Fhuk**QR-0Y}7NWQiD;?oJu9HdU7f?6!pxj)Ns@@ zrBe9jEpACyCu~wz!ENd)xP=SFFaCYj#U!ikNi%(w)9$MXVhbExVd#I#%v|NPTl@92 z`zjD^(=I*jzRGF$RRpnx8U!&I=DuNeUgfk~`w_&7K9}3HrrlRL?Y@ehvQWeO%gfbT zSt%GmyRUKp?Y@d2wor5b0UDONW12lzIa2oMHCN!opxS$tgKDpK{sl)*-Z0R2wdr$r z|5bJWz{39c=k6Jtr0EM~t)XFbn3v0FnrTQEUK$U>#Sl{= z6;-E6=QQaAx}dXgsmsNrqH~6H&JejN(g~yJoF$#J+OO!GBb{^FrRdC&&KxP6BAqab z&IQuBp#7k;No`Zpxkx$}N#~TLGpW`}I`OQ|61sKRzjT#1f=<=kk6WPHlt4lXe3vD@ z%j9vY#&dv1Vhq^3cSJ`$pu|rEFwwJ_i zT@`(`qQ4d!>j1H|9%&!Y#I8xG9K=q@%$nGNT9IX5JP)SsGhe6NN$kv$P3&N;7@|5) z?1n7dLG1jJP3&;37@;~(>?YMtVwabk#E#aAG3xQ)q1u-%>TP1zm-57p*NO>BgO2+Q zx0W=r+e;GJjjP6FjZw^I2)f8X@c(D)eZbl}vV6hZdnts3FLw;KWP~pa1PLVZ&o}{t zZJc03UPwZJA#SoJ0b=pTM(rkJ;?Ui+m-G-1>0$in9oEb25}VnuUS=PY$G6MG%nsvW z_c0#&8=i-^kM+{i#360ssAEaUL~-l636}SF>PkrN*Kw*i_tfv4I#qS*&#ilJ3BRZ| zMP53U{R@hINztbieWoCS(;}*(h@1{ii-<1q0UILCX|0WLT5BVm79%g5w(=K)B9WTY z+8g1t_C`4E0y!-r&1nl7;j{%|zUH*Wjd0rHFiUgVl14afNh6$gft(hR=Cl=!aN3G6 zA5Pn&Yc< z8scsfOb$6rUN%n-iAZzE5pu|pFkf@XQF6%9FiUgDF>=T;a=dwRNJN@L zPLM-Rg!ypDaV<~okUzIfHe%H~Ne(%mE#n)CY`!dd&oV`hI;HUydPfdR=jldTI!|lN zox~ipT4oyQt@Rm=$?v%P3N5pZ8GVJBvl^4%a1Z2I<{C2wax&*MCjXiDf3VCqVud}g zu~JE6mc_ErNI%!NpfUMRA>-G%78~i;xfUB~IG@kXJWLUlughv#YNR*%mm*2u0e9GH zS#G2c0hS}&liD55E6L;*(Wi~czoe&)D~;#}tBq_mhppv6GhTVqo=qAF9evuE^-K7& zo4}q%=FVXr0)G?%n+Y6!+F1Nc^3DLEgN@9e!vcg}#OoxQ?sS5O8nNc@rjOn#e@U(% z-vqd!i3M}mCc&%mR)hx6B6zd|*Zq<@a6fh60W` zp6gRw%HvlNf8?O33Q-|>OyO&&J3KmUf|nLF!Ar4-g_jQfa#$pi>Kl&^o8YCzP4Ln= z@=`>amzFfaOH0Ch%}dLh;HBkZmgc1uP4Lo+CV1%_c_|{zORJmUrPX0RymUd!Gdyh8 zG{GBdn&72#@KU^fs-<#Y#Z+F~M8jrn6Nb&X>=Xw@q!laCx+WSn>%uAFVY9x8hRymg zGdyfIG&MDaeyMjh;azFlaAerDK3VHYD^%+PRO_xL7N5%uxyY;z!zRT$c^nxw?Iare zXvoTi!^37$E=wlaoXB`pK=9bHuw*4V78-Mznb6;lpo_Wkn5n#aB{~+S=dvt9Z*S<7 z5IS}&tY3*83$3}#PWb;E(OypY=v3amvORnvwMY)o6aT~tz@KT zNXAr7@r#JD>YStbe2(VxIhxPsvOiT2VRr{n6-DGz_;pZ3beTg`jy7_RkWY?~PvRB} zJ~_KGA`+?j3^$tMwMJ~>4` zIThx^Cxcp^VV|5PpPVM2oaH_l|0%a9;*&GnCuhjXX0x%ygDC8iv)m_V!zp2(oZ~(@ z7iNZia=vMy$^NN+5k5I+8;SU21+`9eBq;xsd~%R{a=D3>5+h$B8( z$=xPqDzD?hVV|tXWtAk0T^?;oS55F(pLBj2^~vg7Rzv9TMbI@|d5lkXeH!)2+FVvg z=)Z`dYY83elYO7Y`ec1BYaskTNAPuokNV`$r`tZ+l*^n1{cUtAAN@4!l4GB8mt1U; z7qVqDwZdBTlvdNXY^rH4~!n~8o=H0yRwx3y`4H^ zm4^!DdF(M2+~zjL>@k(x#(XnCdralGZ56jmm#lD`f@XOso3-c4BZbK6MD)$N=*(Ah z8`T}M09?|{T)BXKq^GEiqSp|;K}Bq&sF|XZ6tz&)M$svXGIt`v4%B4!zGzErdq7O% z15rjWoKY6@y~hwt4{uZr-{!4~jjEMwd6bNPl}9gv!XDvdHueZ7v$01wnT2by2K6^B5KvaLW`?8W3VvO)tt6++camzcL1Gub${*lkVIG12Hl00 z&gP8n!pzR*G(TbR`9~KpK@GzPo?d)U(45hW?+KdI#Ls}yIaoI^hR?VjKD-PRTDqGv z1`0E~o70Sh!RH@6z@%#!zJt|YXz6Lr=r7FdX-=~fCUGC@1*TZT@S&y$9}_fZ^x$KH z=ClgJ;MYz2fT`9n{LbQ}rH{O|kG!>!oVEV5ZV?oHjsEYjUCyt#E&q z!t=uU1(DBC>W-h7mDjT6EQhIa zUlcXNQP48`S*e{+o>JM9En6MA)D;=OMo3&;c&$oth^()P6I9DDoWFxt3G?$G*_D}R| zJa_w{arE7P<0^e{Fv6{CW)nbS*XsA+vN*1WI$NNbO#;^doVE%aqfxMU6&88OqLNix z`D*FUfi%9wrgCM`!lrZOi9$A$%Vr@s9Fsx%TO_p(soGUr)?20TLCX3Tn*%HhtISAy zG^|p6+aKAQR!ghj0;c9IImsf=phfHA^lUy_vZ%sNuCSKSb#Ji+XpG0}v4{?v8tbtb zZEV1sr;WW7O;9vR(NtU_|EOqqwWa0}TZGGwt}aWa#+f)Q@W#WW1K;rUZ&cMjBL3UJ z2aG4Oa$D+gJsX#T#D+&zJ&*Krt86J(zp%=dk@qZKZbg&>bmEDT+?L))_)P$=Z!@kD zB7Kjl`X6n7bmUpp2TSo=ykWqr0L*)<1|D(SdJeY?LR$Ph0K?|uQqYCNWEF5jkE(`| zY7DcEni}U}6MZPv`&P>cQmmgB$C(-z;?gKO42jW4Rb$|ng!%hTjf-)A0e*wOYH}UN z0KC0oS+!JuuCMu=t)L`}aj>kOgBRn1yUt z)#v)&&zXk{ULj*Lv2NhT&ByHrVipL>gnj~bT2A3rbd6<_rO7&g#4z)K;&ZlzNvAID#ZLNvd|reuiCOW>4|$9 zbyIvFLheUZZu;)agQA)mgK;W3_YqU$2;Ti|9HnTCqH&5QD4L{bilS+XW++;vs6ou2 z4w_-k%aL)*GBDZ&sljZ{*K;ohZ$@DXN6$K_E{6gJ9_gS zmV~eJvhI+jCm{JoDq!Mzl{JJphI4U56?a+@8~D)uymM@FYp`pqfz#s;0@7K(NYbA z=I;1Wyo0FU1&y*GRU1ZXL#D>VG>VLFRMioUf#WcyM>hvPp9*i)CtBR;R|oG7E?He8DQg>eX1XjLlVz#KK%k8~lP*BXw9~ z;YLqN8~uXSfHkhMupc3%Rva*m;Pq_N0DYz_rB)s=eZUFxNz*k>R39*X2mE`2KRVr4QJ z!pfxPuC4ZN=_(=XPs-gEeZQU6+2j)7Tl5If{#p(~74JXJoR(=gf$MHNDh6lkefZrr zxW=rnYL+}{E>txi!Y_Q+S-Vd5-qqJ0K$B@mt@jPyZCMDhdTKV## zA@O;hXpT*+|5D%ZCF?|D6=iSE)^*wb8GYGW5O4bM1q)tv`jS&ANKDVxb!&;mNIZ(f z!7n*QiCNjY9xbs1iARt){w1d{daYW^!8-`v^p~7Ufs<*=i@7gb?2lP5+GgR)6%;Oq ztgvS5`lu3e8WG+AV`)RzZ~JG|NWtT(;>W1EVr#K=_K^Qeec($rU}J-@-v*^N^dQ^z z5LogUjZpE}^kF{6O{1IC=hOIyRbS;})TTQaXZq0b3c^d^V!Wybw^-w1(Xwjg>HCnj z>47T%hvp-<7+=Rlg+{g9iDK=*E1$Y%Mf8j#oSw?V^}*>%w0 z*Z573@z?pds#~iT5}tPJXWVQQcFb`*c9VnlJg({`$hdW=aJX>MtzUApF&i5PYE`pV z>uPl;Tl!HA9?ru?J$s?uUp4S}dlemY>$@>{r9R7xEdIJ>@G+Z!62q^leAvY2AL-6|<~Wqp+YW(5QUihaZ!h>&C6)*79HLD}K!;ZEOlEYcz-n!z9j7qET;| zM!joN4g%ew58Es&Co_g^nJXIqS?~fmmerFPft<`$jrTlw!5qul$&6r5=9;)ZFr_OCEuj6BAKQSgR(;=KQL(pTGl7dEBD! zaq5$c*sM+NEMjvuHg7XsD+}M2PD{mRz&Rp}VXjyvT^i@x^&Td>Jp z$m`X_?NSUfOe3v{_amkV@>H^r{KhKtug9|V2Sg77LTK}D^h zOle0^_a`l@PIRnQCpy*#=vW^_I@X$#I@X%T4|goLlRB1LM zrVn^eLJ#vhsfYQU=wTn=AjS`PANsi^;Ka^ofOGjS=s#G3PHc<@IftL@^PXkXiB0!S z&f!lb@mMkBq{oUO&f^ayhwT=zg*u(sLjCK5-B>);QU2Vmj766CmJDN2W_(N92v%UG zeF)@l<|0c{ONO~9Gbx<#5=OT=YjRFjQRhAV*n#b@0FIfz!@r9SgAAp$w$7UqSA9vl12|p(ilSda}v6i zQtMSJpO=_^!c*X%_RM&c**u*RLOR)}FY&s+rHqxqa!Kk%z+c5x0er7_?mowx4@&CL zJ3`2z)}0fQ^K`H6-^1pDr%=PSnNBx$u$rxYOXhH}XybSD;kqfDZl z^9Q9AL3P`t0Z(_H+IL=X=P3&nl4(?b&H2#OV>`RFY3j9|P2N)LbM%v*dZW`*V_Yj% z>d#0@1HvGJ=Zqwcmq|~5?^Ijoq4qOxpFG!mrsG^&*U2*l@BC3)OUKDG&D|%@yxaE9 zA9lXo_5G7)DxMOgIipSXxF@^3(Z z@2K6q!mv#p>J`jrp#q&0Jff49(NZhVNor*dS|q7J;$Btab@E=J&i)l7bgX2fWMkZh z))}(ZdeJ=eM;R=T6zfTy;yNjrtomyg4vQwI;o7AN(bT8m`uQKGZwhwCEUqPFy#cvC1Hu&4Dw{lOS;(^}=%B9`!Cx4@^bP4k|HU1r` z(!1s`DQD}x5u|Fb;zy+i5sWCT{g9-VbW2SS8uFCdLy{mZdZod9ogfW+l+FscvDE$0 zAr(KTGrf0qGBS#dh4)qiK$#Rg}kNOsh73&$; zHfx0X`updOiGorMN2?*G)1yql1KvM-t6EgE-WFDDyWj5$$g1f0;q(E9|>=6Psr2-?1wBl82>2JA@={$V= zfx>#P2R)$z?0`oZs6cN(SML6aP?0Z4OCDt!oO#sTvr^Z8smmvqb9r{xV|Z|{PkJRd z5!3a0X((eX*$2+%5uMt77}YwFuh@~wsPQFGxI!Ol^7K4ZFoY3R>r>!(%3!`EiO*AE zX1&8|B2~Vf4{6d+rB0f7K_{)efFW(dQ}Zn!xaz*EQ`)~v8a5`qEU|NA`P-Fmlf21Z zXsFrhT;J3yW6e6Hz9lK`CnYuD7K$C@a_Qd1BGY%S9XcWk z(l2%jPYHtJ{~r8^nxT4KsiePk>w+}y6{HYC{kk%FhC8t6(;PT`zcP=8^Meb0PH)|Q z)&91yYLgb>$h~h1ZkyWww&1a;gKrCd8|H@qAN2dq3L`dkjACUI4xW5a5_Hvj?gTt) zO_wlg6Qmih(s>YG--H&;@+t#p?;(T{bo2@El3>T<_D;Ok_Wr9 z3`!08e($<63Rf`vQ0U21jXxB6F;bw9tWw&DM-BW?7|c^b;KY+tl=zeq`a9}TnlN1L zm;Ar^4qAQlH%oa>KP{}}p`FkQ$v$(CT7fZZ&~;xrdy4Aqlu`*Vse#`N7E3+BWO$Cp zWBNG_66)}Kf)&@RUbTI{v>Yr3-F07G{fRJ!Vs_tG=E(CJP?ln!l66Efb)1cVsP_I; zFx%Dsp9<-Ab?~P`mR)JbNQIzI{8X^p)#;xK1$Jrhh|cux+46@9hB4~GwZ6c*go#H% z|0e(1^zD9s{2>N9NeO`qAH!I{TPoyBF2EdX_A78PWu{V+=HY5fpi7SFl=@>jX|P%+ zO(G1!aaaD0BrPN0uW9GChE3G6;oHvjYJ=jblbAB$DgV~GQSoi%x78ap8}Nnf5}B^`5hs>NO1$< zx`U3GRip$UxrvZ;67GExOOde&cUt{8-j~d-kASnFeDXVF{o_kI%g^^O$;; zH00E&UH61?huV8jsBowQ_k>D^I&@E{cBrHGgc^rBbx){ssI&KkdWSOD0(WiUHJ!db zRwPZf=#(Y!mJwDoe%AUz5e>iT-sK|GQsUX06(VDlm3lK#6dD}rZTx9+s1NYR>DXOq zId(+c{r<~GXl^-s0VA(2-8<$z^Bl%rWw8|oxAN?)>s|ZQo3bd`*Sq(jooY7@Juf<# z?)dX!!A9|hj=lN3SpD@3W;7C?v8k;oqTq6<=kcf0K~7WbriI%4MG1T#^CiM2LI^?Z1Q@}9 zkc5!j$*Z#6Tfd)A%-)9ms!_ zbk%{{KwV(>oTVlJ2X9~Rb?knB(vSA5r|St{pF_de$XKs;%AcZZ54hHQ2<@WO&cL8U zoqt;xaNwdlFzis5-WG*fK5y!JP`Xrjt8;}D+3M>A`wGP3OZ`9;>gjI(i z*-erQW54ws!R?SRGe|w$$SF^XuKpXh-}w#du;ClE{vE;NP@V4xeyX+hZ;+qso1jDO zd`Ad4r2d1FP8hTadZ#hVduPor4IGrxq^BgzEEt0KNF($&=vT&}pTZ<^oFT(EZL0ko z{wC!qbKp~$M_3^13ru&?eW^#)zH>r)o;rL^*JRqgGb>M8M0u70Lf|##+LM^JvsJPp>K9CnO1v;&a9VpTy@}<9&(No#3qbQU$gC5D*KP>$};KX?Ihegu6US#PqvJ z!V5OZbx4wMzaZ%P_uN_XO1Nzxz_M5E4$Jn?-;hmh|AEk+r}l@hhJPTq^3<^(2%UNA z7I0Q$NJ~#nlX9qV6rCP!OaoQ#1&P0-vDoHWm2p6x^4vI0bhN9H-IhyEC+|Y(g0YtVFO*@L-whldvLD zmwzOTLhGH1`>GoxmJ8+g)#Ss{&M{ip`mj3nsaZY3M4q4@S|8nW2Mx^cpYM#~{@HG- z_DZ<*5%gnwYP@h!Za%bAWlU*T(>{q-JnT;OeTmk`482^!Et{Yp-!tX8Gqx^awJhQO zjgJ7URGJ~LgnKDLKe1=jb7x{*!b%C;5|n0|vZ=i<&Hnfllia_NIuDoY2Asv!4%dP90+1) z>JQSGMk)Eb-yaO3m_xy&d>YumGvrIy55TB}Dzkf+_DC*Vff7v=hl~<##Z(X7i{hrk zXA)?kD6n1=Z#eHNN3HE4Yys#ck9&`V8xvDu*Nzofuo`p+cf0nl1y%ohf*sj=g6igb zLIGBmy(ZQC6S~DM{)teMFEG!ZxpfKmGlDL#r`I&UF0g=aeq9~?iI8OHHx zXMaLwC)-u=kBOMHsp*^mr{a&%pE!2Tltz7$r*lRF7{d{P8BSE@Qt~O<+(~o6l!3 zQ)LEEsN9oAaP%?2H}{0$LwnOWD$ziRBk=SEV+e_Y1m_0__Y2^Nso>zMhF=vRFF}e= zRi`gdKJj)+LMs5cN=djvkH=M~W|Z6O((<0-7(-auu$GyTTjKVPqEb!e8LGb@g>A@} zu&fuPiTkMoYSRZoQ-12dP5rafiz0n!4YP#+|;8 znaoVrGxuHj>ex>Ot6jm$Ul}@r)i54~={>&1`^67S9!lUy;H2m(9@adpCq0!USN*U* zU#<94p%2<>iBb1(5c@EHDh%X9bpvsl9uA}7{!|#s$MF8J^C9>y;xF7EgV6ka1$VW$ z46aY+<5pHuXgd$P8k;`8$JV9YZVWz@Kq=TyVTsz!2<Da1Qy* z1*&0CD7Gub&+8-vb!t#3A-A6O4ylRog{NC~wsMy!OZdazkTv6A0k8L=fKfmV`mjlIn*zC|SAN^SV>g=#bl zZlZ8ArQl{tSpbco&`s4cXaoftg0wYR%d1UYyd>1v)!_di)Y{dozYyx|5^laE+LgF z_@9MtyBhdN=t17t(crSy4SutdJSOzomBoL9aw6a+k;!C{=ePdf(*1^n6p2#A7j;TJ zg5gE1v0ns=?2F$tY$k0cZ%Rm&kSZZnqEuK=i+fpeAJu$S=(8)6FQVoqJl0LRL6mT% zEE5NoZjuX1xS|{JVgr*ZHl@0pVuKQnK2n?hN*KV$A=qH7qy0@xGWDB+y6{)h&Y^-7 z*0kx`gc~|H;fC#-BL%AGS=uidF4+BkC-J&A#|rp*b;LVbpiI|D5`sGRzX^kOb>iO% zLw0p)LKwEIi+?SQ*j4w(!l+&K|9fE!@uV z>nFmDU9G$(%-Yq4X<^Q;I{#Lfx2rw>r?6mGhyG4jg#H;}$xh{}M7b8JT$P3t-SXz@ zrh60pX=PIl6iA)EDcHKUsfLK2Ej*2=e+B=98glof&0FDD4fDbpu0y7fY0cZ{9PLrTa{bYTM|+vq)13X71wSJ6jC#`d;1GfpY;Z{ z{QnaS*t1v`k{s&9FN9==A~r#yNvCf9QZPDH>!*U58`uB?d&s~BgOY{aLu)gZP%-ja|aAw@z8^h1V?ZMAPmwB0y`FpV(N45yjin%SD&;-eDy68IAM$|}-y z3tN1x23pxf2qB2r?1@J(AS7X%CiyLi?euTW-4AR9w>GyzTjHbmM-tEy&=SxR&=SxR z&=Sxox}-6s&j_!yVL1<)<0dSR6uhjG%LN{f=9)VN*SMroFw2R;1nnRB4DkZs<=QS(3VrvqecAMT-OfgBg~bLIv-&v=6a-d zz9o%%=a6X^<=6dap->$y1Z%z!d#HX1+gGZ46fIRHkg)wroOEvxoW6}F+~=ZD2)N-$jc6Q!#?2UwBc4#9 zguQbbQ68vtTVmK*D2$ZvE!dg2CH1ad*&L2Nr^OMll2?0(Ktf zyur|az~9Y~%fr;oyTUXE$S;M8BAyoin9>Z7Db4;R(l|GnbB&x^vCU2A+$_$mBd)+2 zHp;!yBr^AWDO94AcNRA!+T)x-_6S&cqtG=z*sKp3SG=%H!uBU{DBFNrs41dRm5QVj zX%C1tc-kK~6q%InMAzdK*7?}&$IVdJV|B_c)T6~iMs>l>cGei1aIvzXEFd2QLF(~I z*i+@DU)@kkeoYu>5$%IbdX-+MPU&-E+(`CKJf75cT)~sTQ?T=@41-2cW(h;Pvhx}S z*Q)EDP=c}To>1$chr3h!$w`WCK9fsH7` zQS42m>7jnfh;6=?E5z8W&maxIYTRdxH)zI41)X? zDAPrXmMG`T(7+^JgVAid`jjZu-H%Z(xLbhugd-Tr9ji=tT#r&;K*W;FD88-_<~;%M zVe6XtxbZuo-aKkbH)olxW>gdEv)WjXe=(V{EkJcrN}qAmIBGJR;{=iLI|R}CM12Tu zvOR!EcTqtOcC(-tJ_hxaZr2~+`jEh@YZyvUUrk@fX7Mu8&{D(3tUbSD?0FJx<)ZQ# zK|Cj5Lqa4JBST|!2$z9;O7Ng&gsVjA&SCFdcL@=@40$H$8;o7XA>)XN{cZ_A=IN}# zSn@z>zXc|YZZO^!#33VAMNgRX$u8Kye3}ON$p&XznyB3O zyPmm2Bukkb|Ad3EyYJ{C?bc~a;&*wiZw<|nI~wT2T` zf5&0iIV6yym;A1^7mz^K4jW^$XP3h4%lI2>*3~^^*2mydS(2VC;`J~)`APQ8Fx&7X z`!?8=bNQ2H^M%nvPa3opW>-9k-XUq0R6fbx8)lC@=?qPK#!Qlc=jl(erBsk?5Ddm% zmc%iWPLkzS<810&>hIL)n_*qmPiAo@!hSM~^I>+)lkAINQ(-GpW2=*04ztIfEbPZ% zQ~OdUdD17@^>ES+Nqo{yVfsZuV9TguNhdd$C!fe4IX66Meh=ns_JC&(_b)O1zD|`Q z?8N&tDG0j}P+i$^qL3;T_8HB4#?cX%Qw@8{&7;QnJ$Z3ryeVl<@}6hn#D&yqQw{W0 zn@h~a<_hzZO(XQ7_Jw{#rVplK-mIEAfH$i;=|!xU<3!u+fl?>ETGigd{5I1E75Fe9 z^2Sya*s1|L3E0)b0syxEUf_8R*h9eH78V4sF9vuiPK@Mz8OW<~VrenGj@aKKZ(7)< zO&-BpU=t9CoJe;a0)P3@i#ea!ZUFm!*p~-y+t-y<=QAJj%nFlJuKRGFfsg&+Ab!_NmhBZh=u6w z=cKQzt{)abH2A7+aN_1+v1-htC5?Ni1cekGq{8Dx!FJuVRIzQ;42LQDF1_jo$VfcC z95^v|;L1hhfEQdZGZ8P%&9cNa>0?gLF?!o>UVGc_24~G{EXS2iynuI`vlck3Cy&3A z_kgn&Icwp-mAH6OUeu>ayW&ap5@#=J`tmqynX{G-T%p71j&ars8E~AFt3pXqOIC|qVU??6 z8d#@6;4C|I5ofWs$dy*PCW_h{M!{LKfzq7C+#*+7<;p1PnK0^jg=jkjnD#>BF`X#a zSmpU5hWi(M1?Q_eS3%B_^>x*GPPqJ47dX+rt~t%cim>-szt$L#87FUo2>%NS@~XP{ zr>TNeiqNn8EQ2Dvs_JJiP=puyPqhD=P->Z^OUU@XGb4 zM7-Aerk*N>J9R6-XJ7;G1qH3F#4h()S-D+~$CyzoM&xdAxr2LE<7`(9E0d7YrYK#J| zU%}s3@EUL#+ziJfe1K0L=@sv~R=na}*NRuX@j)6583r*FM>IZeJ07N424c8QA>e2wVi16R(0|9+ZuA!r9Om)y$bW#(WuJt3d_)RpyqjU(K2jOf zcz46Rn9=6J4)U;Po}Kb89$HPxsP?z zEK~n=)!pa#lH}_u-*X~9%`#e753C)yC5!sovdDS}^x!$Ms>`o`fa_km-oiCswZuJ7 z#J13`BvHRNNo0Kl+JUq#zm^4`j2dWCLXDhEp(q0p28a zqLB@@Ilt7MTveobc4$|X_UJOv0D)_u}x0OVWW0=a32KlacpE3 z^F;+7Kwv8(U}%$#I9$^%50Sw0k)bq?TetTQ$hxcCy6is?ZFzqnmYUmOU3wcEx6A1` zYSS){lHe|W8=JAq_8c~Am&dVdXlL^zZos)yqn0Fmb2Ms6<}v*W+o*+ph7HQoDB6z* zM^}&1(bc1tqda;MR4GxV-$jH&{YNb+SdQfF6tBN1nmqgP16eBnH2SQit_?$LT^mlQ zQKh2@Gz#M& z-j*?xpV`iNiNqVux47CehVwIBoX5XE8qTwHf|r-s$$1Jt0x{3h)s``sm)XU6{0pRc zyQRA=W8R+G&3P$=8_Boyv}KIsXZCR3ZsOsv!``+G9Cp~tdHhVoDTk%6En~`&+1Ezi zuBO4+cO{EnP?(o-mKrEEJn{6m(Zti=hABzSK+inJQ!^;FGsiN}meHA$Inb6?vEQUV zjgO#OdGgbg{J&ZT+i+UXU|ZV%Vp1)I2*kyy_H8(=XISG_ffKM_jrY37lx7ZvrRU z=$k+_-uKx9Cxe$AH6Gi}QqAXk$yjy`;x1O20x~Q}kwvs9$Q^zC43Vv5YO#G^+tFfV0w; zCcWxqD;VI$ZC*@i@nu&&P7&ol!6?YffpbN+bH15EeKwiax3`e>?UcyazuG33ruMR)ct3=5FZrlFEz zxiW{jaa0!CW-UhI7?jKmo(!9V;u2Z{6BRt4MS znjGfGts<=26nC;fbl|znh4xm`aC#L|A8$*E?Q&fX3*vSW4;#=1@lvz`4DBdQ7r$YI zOj3L4f&-0}+|KYr5o&r2&`dyX(p><3P@dinWL7&99r8TPvB!Ypc2gzsCHs!uqHWi1 zv9#$~pzZB)I}S~8$O{lCi4n--0=(s(fxsaM6qEXrcDXZ$865H=1S(?$#N3G8$AOQ} zEuG2*yrP}qWMkDC1Dv2=BIb6V0q`6Ymlpt8-OiF7@)ERm#(-<7klgHx0N1sb){_wp z?F@%3sy#74Cjt3}&{Y6GhSqjMy4so9A+JE|a17W`76IP?IH|0(i?H48EFD@WV}QM+ z)!;<~-UhI*y|kUC!~S-LL%7t%7~lh5UGDqjwm`-iace`R8f=$`a+uX2yJ3PmMj)9? z;I**VDB6r=rNd;xNIS!^6zb;h1wNwz#|Svy&Tuk?YQUXRq~}C!eHlR5x@H4#vYizJ zXp8~28p#));eL4r&~q?$hLp~>%Og3g#3B1(Y(b1f)YUEme+l?`!Y{P5a)%rMxFQA| zb>NQyh65Y&fL&^5xRq6FVt_Ze9opUqkhh?AgiKy(mq&A0r9%!vvol7(#|3z$J%GR# z1lGt7ce^~E!>S$f<~~+~OnPEu_L``$TqfIu(ZM8^`bj3xE>GsLT8A7$CIfLh8Fu3$ zH5ql~mmvaI-Xw`oJFAEC;TYvn?`#DS-Z@WwHU1Q90B|e@81>Hc0A7F*NvD8JKE;|G zvRG_VXJf#Zxyig0Uc^=32JLDt?;HBX08rijnYLN@<-6Ptv_lTvV zBv5inUc?dp4mlYD6EOmZxB%}t#~|=B1jb09;*`9M1OFYe5dwHTxt&8R7dWmtB_z&4 zqJ~OcdrDr-Vcibd42eLD#6>P~hD%(6#AQe{kVMldc@4i5;E>acSuYwQ6eDz<3vqY2 z0hybSX(t)iDcOVL=^b(waxuj3Wc^Wh@I_@FKxPXvT_n?eN)F&ydWURdPw1~d~exs;6oI2Qwq_J>OVqCX5%Q`*beIDpGB z!06EaF@T?>!b_;4#!j&bhipeJt;K+Erjk!x;O%z{@Y{e-5`5~EEatLFhg<*&e~iQf zF2S8@3j%Rwv2>73o;fAsK;kKfTnvFwj6l@zy=HEBJMGydHks5n3B!fKjct z0lW*XA<`G&cgE)AQIX=3R(xkUE?8K*lhqamQZJ4Sob=?Fd> z_~g^2#?ycol(7{62YxT`kOoXAU~w5+1#lF=$e~VF(%Ad8&3?MHfFSsQSDlJUFQN3l zuWjY0ODiZnSc>sRx09_oexHg;f>fV2saXlpEMipDQhFWI>toU{r%^53ti+8nDxjVq z4X0&$uG|D$hGKx%IWYUEXuAQRlYs4~<>Fkq3qU`B|MkRk8>L4_Gm;OuPBS-3U#^b= zqpkG-z%6L)BCXx0na3e_Lu+*mc-LOCQ(J57#o)bHEG?k5N$+X7JeT<$at{RRVgwFx zff1S>jzQpM2+%pne6+_Z;k3d1Nb?>hsc`Y({fEN3p(UJ2n@vtT#V|! z1cA#C_;cV#Ps??=Y||n413wXi|0J5hb>MFRKTa7;oR%AMS;!#|KwvRO;5HXHew0?; zcOl_}#Lplwb6R%hGBHmcgn&CnAlgmhR9^9Oq<{W2i_gP!V2D=yUX|+d4A-0uXr3yT zE)sU>wCuv6=y~!GR2yR?>Wd)2$L(XlHxy}m2rH*q5>#7bfNyfu=eX)tK+iz+8mV@l zmb-9fdY(K2)#Wh~e)4fX99{rEaJuva(81Hp2+h?oxae~CGH_V#7E|+wPBSxrbuqxG z!cR1XOF00>cd&E-hhl(HjW;!oNgV(tcd#q~{V~93>F)xF(whmG-odN@HYG+Y7Oz-F z>M1TALrQvdm!=PgwCBlVD11+hKy(3(9}=Vmw4F2;bTE9KrS``Fqb3{z5GIrmu)Kp6 zQ=wvj$J4h>coWE0GNGgF41T7tx$slRMy>*+S9>mfDFbUvk1v=rM7^yMv#3StQN@h z9nnUM+PN!(m)%uVHqene*um<6w8tQ$cIE+zvTMlU4pt9jNenWo^O&Zyv#4yeBXz8U zH2_&1gN*8YQ`4y-CpuUYkaaQ0XxYyJiL!SUl}&Y|PIoXTkj@xnwCopwMAKfzyM{EDvVI_wVvtdtt(wmMqOv4cYO;$B z0GS?xjOskE>C}*B7aIi99)paQ{SuI9_kp6aELW=4#fE?^k3mMu{xOg!yM`=qv0)&c zG03Q$H#9p-TxB=^P)sd%v5~x;|DjRBp6fh`6dwImy8w8CIfS%WLJ$;HND^H2;jT4RTRL@Q{>b{Crfax?}R z)p=agIaE~E=}PT#u}L5&V~|muXEdD}vd6`yfSidzMqA+mkZ6VBqOv|$YQKw31Gx}` zjJCpMAkhjMa?r(QfDFVSqjr9x**Q{FHtb3raj{t-Lovvxoi{Z*HRPC!%>ijhiu!6) z=Uq+bXi?dOD|OPv=7BWFAfr0BG@Tl9+Qk-tw8kK#I(KF9HX17`n{}nmx!59*B{9gT z&O9K|MjCR##g>4qj6p_q9@BJ=7nLo!QkPw98OXXAWK`#ynobS5>S8NEHpL*LI?ri3 zCyL74u2heUtpeE@gN*9DsOi*@0T){XvL^-^)p=FZIayS;=}HZ`m>bA}7-UrEbxo&+ zjQ<|<067d~K?P(yMF_|T$(KPb5H%w|O%X09 ziJBy8RL-O*pZX@KA)@+;>XBi6kNhkR9e5Hy{hKU-WgaMLp z66GYSjwI^nvYM!BqDn}jge2@l*@;T0gmjV!CV~nkf^sK9!cCVeM6D3DkO+x|L`cjM zHA~cZBCH=zM2UtHchdq6+j2c5(L)kViKv%=0X05kfW(ji5_JX?wc3zI5mL(yz?B=2 zrImO_1N0dQVlY69N1tL+m-JAuOw=Sr!*n@9R3}CCblE^uwf-{Gvd0ET(qavR5TE!#@8~OUQG|3mCPZHx@Ja@*yycdtsqwVtbs!K;j z9L@X3i@CdUM7;-(xUzG?qBt`88I3lOnqwNBgm);^Bt5>xd*PF#V%2pL=Z|CRt*y{t z#&Ol>BFI+>`2!$t0(mP2c?n1>kXIwfrva*1ueu#E<~jgwRK7vq#?LVw%x$^L%cThz z^;D&L9GCIJh_7nwYyDP^$ozR}(vDniyitFY(qBMnA`ChLHt|IF{+2_>L`r)VvX$#q z$LPwePs7#mV`5bwJ(hnH#OHWOr-_>NXfHE=Osz4}^-rfs7bEnM?c!g~74-#W@HqWp zJoo26An*xT*Ku;{gb`;G^*d}L3*|8per49T z;OVPPOk&i`soU8d0?dx=L_HoT9=C}Vad3OR4R%N9gJ=qkE}$|L=y6Q=#R#K=&}Y#E z5j1LaBtfBwQ}EvLgl(t#=|Xelio09tP-!mM}xoGZE>rukjc(l2AnnFQOb8V=5u+jt|H=CKI+@aEmO?cJLz2 zk(F~?9crNu`5cQR97RzgG+eMXLca#X;c{_R&~iS)e3kom)0vhX#J;4l=M&PnyZ&R# zt}2)?pYRey_g0Bj*;UkS^FYBtZ$!Ya5#)6=kj7Y`VPPTRu>OHVWbtsJ`Gh}*)b!U? zhpOm37Vet6^6*9q&f78Mqh<1Vkror^ocqKR|Jc$>xi0Zaoc+4$4A1l&WlG#v!l3gS z=yj+D=mG~_jDUW`LHNaiOW=o(mA|YBXg%>CTds16k0J31r`h|yCQU>NnK6A0J;*Xgqs9C zq$RIy7x@+$=jKIT`MT;hx9F}`8uxaQeHw_04A27(+KPa-iyT+IUF03rTx+DryO4s0 ztVTm}3PsMVhBY@eYur@8+YuTCY$7LXO2Bl|lyDHUUqT9oxB?O92&(Or)Sl1*hm0`L z``QzJfU-px?-Sz#cw>ZtPS&c?E)wrbaKIBaMi+IDt^^Fqmm&;wi>?Iprf!0LqH((k z)=jXR5e8u0)O+q~jLrm%HLe6amfzACy_8iiiR>!mruQZsB?h`iUW5S;?oGgS(ML`9 zvc~NrMSTf5usOmwfw3S$zq>sWUMLjx#TW_uXeR8Vj&QY5G+?-NCZtk?@$q`0m<+}M zRq)LSjq&kzgg!-ye@qb>9^u09tOS%Vi)^z}?PnK>m8g9?mB~)Ee<;F0-gc_};}Hgi zyw(VfMmQIt(Fhkbx`4ElQ0-pU7$sD@B~(?PL>L&^ZbWFbMLD5wYm9P2mlOIygaKR2 zsV#Qw<7O696&6sDvNc8}ZqfqxD1Jx#yr^gfQ zrpApYSUkb*Mi_v_^LavJgmkFgO&w}?*M4qk64h=JiR48XM~Q)IJr-fW)04=XlF8Fs zHEuFBQ!;t_`3U0#rs@d&E+wMK$>iD}?-%1yl>r@GJD@||-qOxc2b~jW%eF&~WW@5gJXgtV7jZ)ELY7xC9Ki_SFaj zRky5z&o1lWvo|7KWHwFJfBRX{kLq8gx?CmLD#5lQT);-j(ouZAf+tI$28ik=W9b_f zM9j161ps*OFLbrQwHhOSjjp}>7jTi2*pFpA8(@ws@CxR3nJi_ z<1^`zDIk*+(T6d3c$-0wdR4p~K~!aY3OtdhWTHY0^&4WSjR4zE(Gkps3>mo@M%GCN z$P`m>`$JSOQ7#6~I`R8;HZ5%0L_z^F4Ig69+LT zehv!nUf{BV5-Q@3(hDAtD2PLD#yD7IBr!uAinS@hAh!gtTf*g{gxnT!6gu9F`3~}s zV8O6-0-7b*+=<`RMFf3LlBlH1O1dneOS@#D2o;+ynV?=mMh1y8l3qt`kmgPNP%0vn z!!JVCFCvdMqSi!cS*FxwN}a*4QmM1}RVsCkqInTLXm1(4IMYK`-LGYsCB6mCNA$Cz#85e@nb} zJAWQHn|)>mJmhV4x@IxfJfikmikcs3Y%QBpPA`bImUcdtuN4W5`?&+{XG+5 zoa4lVzv?_E3IbIZBAknyC=OIz;zUWH>hcSs{@5XrrIXt7K-E>A@bL@bx72Td;P15G zj1adtp+Eos^YuPJaaGyA@SJ@(eRBG6x;@=VclaA6p(B5Ufka|3A%;X$f*@QkufjyU zmn5ADCisR?ZpkRtMP+KZ5$iGzQ|4uudX$%`$E3I=`Z4u!BU6`a;ky{yC(mK3NQx>^ zsS-##;X3$aBKP~PwNH0LzOOzb`>ehG?X}lld!MyW_t_1ZERwk%BcL7rLOZnc70USv zrTBt7{Dmq0@0d6E!PgA@-fISa?lt2Wma1cz!-q`#VV)hr8ng#|dmhq4$o)D_RhTN&`ON!2BKes)Ity1@{RD$=`852V?<|&pSxN@@p3kic1H@w({)P z4+^~QAN^AwUjJYGlctv~T|Ow@!K;TjqE*EatvF7~brXgACLhLnWAOWa{rW+%d{Eqi z{6zNW2L+v3)ww(b1z)3rcNIF9hrbWiNoAxuxlD|HpN_8TTpszpmkxRzImw4b`EKUp zT{Tp^<3QlFsH0_q4;nxfr{j#?h-@#UqpnVriOlG!GI0*vI3rfY8L=wPh=ol7GAxyf zOtvoT#`O37+NCn_P8oIWO>X~knV9>2M*bF|%)-JejC-$4EPOxXC~))W&L?H!^D^-@ zWG1q&mvMKxmKVXij0(EbwH&4H++xwBLt>S?)3v!xs+Mt*H0Z11Alr3ht^JHpF2dJ5;sCcXy5#b0Os^jjbP!JWazW9ym)=ALC*gE27n8_4sNpD_?&XrAU{}tM-a91x`qe|? z`XRB*qMu07p5;=AelA6Omdi-=Ybn~ZTwdhYk{%FSA0XEyKfngvtN{P|pS&ZdaC8m+ z#!m5p5CMu! z8QLeZUuN=!2Sj}l1=YY(9h$ks$TuGljqIa=r3UU9W3N0Q!bNn{?7&h}5rv98SB;|e zlLy3g7=jaiRh;mPP^hMOsJof5cAwf3ZRZ9;H#&+kl09_hZ)Xt^R+hSoyis&$ z|FGD5Sn#=7z^TAtFpeG;bQ)9A_e3PeyACw|g0KGQ)M51H++p$jVe#@|>dP~S$y3EQ z`_P4wn{eF)MwH&XSmgDc*1dt#XyNi<@eYm^ro*3sQ-Sm5;;(>cpBxs~oz{U`dUFVkB;#OVoP>LGxX8N>d7Ns!s~q!2Ma4TB=J-2ME>r?> z09`Tvx`eml3=>X(0MJ`6tIwbc&^sin7f=O=8B{Lb;dbBTwl0^8x?(={tN2EBG3F3s z-zygl#eD8p@s0XoI^1~ftAZPRir7M+Evopn&&x&f5i)<71->p9VX3C%MiYK6o`26E z>4?DV={Q(@+e=%IP{-1bh!&}~xZgJe>h3mJA%Jad7|=(BjOaE z;R2%)29weECoXTQ(Wg`uzbByR;{o@LJ{)manc9w%kAbB>7tTvQfiw3faV{1y3@)i| zpe_JKN0|}|N4jg(sdcHU@0{va`)|@>kh(Ndtl|LpjNu$T6(5evnBb@40w z2EsBK(6~gnXfcisTI`Cdm1J&XYSW@xPf*ih3ywI2hNgt^Eiiti7(Xp=GuDBYrPbn$ zmJMdFf!w;}SF0Wr+g^J7LGsFp2Zd`7o!HdADDbljbVBvmO**ToeUVN-XLq~%%F-N0l{HMOKKloXEvy9TWZTw zaWpngl1->(WIt36;BPRdHjCA!LhT}}%?heRpwkim>?RuhtUWZAjW@g#pwQnWRBNH_ z;{kOMH5~k};;e1rS-Yva&ZF7&xRctKa`(i?b`@h=0A)>!jW~rgw7m(ZBsDFzFU7q` z48?nJ_pQK>3y5146l|a4Cm;}PD@!GNaQ8(85xTNex(AV$^bq+t`5{rhhazufscesy zQnr*CO@BzNeYNW$k^hj``;a*BkU08~sCq~|{*X9DTt2p~x#o6B~&i+<$_P2_& zzg3+5t>Wx&6=#2AeRZ#(@KE8SB0xnd6`53IQ4yjdcZHVQ#-;EcTIlmYaPI7R~G_S?w$4-3!xQFTbi zp%K-(QjEi)y4CMu+N0`$heZqMiyDq1sMnSCU5ZhX)S`a#nbNYwv9Ic3(FK+)7tS7N z(v=dZAeIEfiHAiW80uU&YoM9iP)m{$Z6a^?Yc6N4drSHl*h;y9v0Og|KJC9r>>OWM($THp@07~s-8V-ck7BcMba=`3iqp* z9~LE`KK-;k1CO4oB|3Tbh*rh}ipx_~yIszEj#TddfhK zT8bZqNw-9YM^}{L-RdZ&?k-EL>bf-G=p&*BN}hbup3s$7$j&cWl-qy&5fT0Ob(hy` zM|7onH&OpXak-(mZ$Ekw+M-G&=N=KRsdd-A_u6xkuUMCStmXMfL;%#ohwXVuE!jxD z@Q5e_6{EkPE2*ay?e#~5(}-jJfjiiG*7YXL{hM{y&wggFA{Y>epMA#$G4Y*8L>Q{v z!Y%AIZp!%bOSpn8))tFiWu~iO`e0byv&U`|$}rmd3|BV z_F00u{D|lS_1H0cTva9^`ej^nSiSX#7zc4w;C(aq7M@3+{RbNFQCat}np`O&V3-kj zz0AW5+GjTsa%xze7kHPBRVhMX$izQ; zMOCJ7Hh}^Y*8BT-6Z@vdJ1Ye{@Ep4 zlwuN&JEC8Gvr=?`+=PF2u24qq-X#1^rRV{*1^;aHuM|ITf)I$C{a&RQ1-Tvn>@`)X z4{s9wq*Ba)+J}Gkx~hb!t4yzITvqh2;-n~h6(lL<< z>H_}R6=l z=W{kSeDs*;0JR_quT)iTQO2lG8ybH6nCJt!ED0}BVWcK+8>v&r#30C(NqBV%!|cY1 z^Bafxm>31MDGBdM)or1(S2t2$J|-fdwkP3@sD>@dJgLrgCHnmOF|h!8cM@KJYTTkk ziGJzW=9oMXjKw6@>SJOZ{C!Dy2?_(hw%H3;jtNg>SRF{hn@W`s^eWK->Vk&1kvg_01DmP&RiYo%6%B75b!|~9$*c|T zKTsvcL0;GJj#1ARrGdz8TEf9qRbmEow+pWn^=(nYM1Q=>aqx8iA-!gi`kM8R6> z!ka|>Ta;E}Jr`q5PT9!%e3d9TJ*>96@FI~bNom>~=NGC(N$arM<-*%Tpw@4motLUa zHK-R|cx5P8RfaZGFIS0GXdZUqJt0tsH&d@viBQY1I^n|0L7=8?re3WQ_0T-y!W%&d zj=s%~yj~?LKEmSZ!Ye>n75b@r8-{Kc zp3N;MKPp1uVb!POl^(Pl&fPQ#(jOIlkj>Qb4i8$MyshQ@N5vq>xjNq5fv{)u{5tTc z7zedP$E!LJp1n=D>QNB^xm?E!IuQ147C!N)SOB$J#~V2ij@~AG?or`^vm120hXdi2 zeVfdF{!!ujU&At|gz)-p!WSMD(f^8&*YTRo_!ebwv$rojDjG2s-8$Z_aVIH(AHtm* zX4Bu+$3C8E$Tsx z7C0gfi&u?@l}szn><3&w(BFK$s@+a!FhTJ(VE#(&i3i63sFK3^>cK@GU^zR2np zB|@q<1pS3-F$!|XjkiRm1!Z>|*Y-=*A_8iu8*hZHVQnX2Wc=~_?B!|^1--(JH$iZM z=kZO#SKv+%>)d$z1NYJ5f(_JR^=h^7Ov7Jpyz&9j>CFvauNEOtqi($C0a?%44YJrt z!Iz*mns~VbMyGD3-hw~=1~()VZ*r_7N0RAb+~(vO(Fox#6Yp=}E}OeqIK4)+ky$2Q z+JNek&D8uF(F5wBiI+2kp_HG6Klau*OKoQv7TV|glaOI|5V(%R5IHETYQ!L<#!bAa z@vVZRayN~@i5f8q>XeC>Grp75OsSED&((+s$g?Ki$oN)ix=r}`8Zigzf{C{#6X{FFD-z!-ZMR9MKPLJiJ&=soBCtau>PF%G$HXYe zBguFd;#;NtHsJ%0iAhk$lkxt;capkMxau)62XZ7CFFnBUj@zV9JSL(buO{P72N=%e zjpFAX6RuB&Re@8B(01o-($7C83eYW&g?AdhlhlpE7akKK2xnS&k>OjV>o(y_kBJgc zai|OlGj*fz<;O%d$fXwESb*W(w@F`lOf-VrWZ^Xh7|!I4;#VINZJ@VUcroEyrKEXt zj9-6D^nluK;YEaRmGaxD%a4gcP`fO=ctC4V^QOsu>oGA7YOjTt4Zc-+ZnG=7RzyJU zxA1}imU5zQG%LMUEPy<0;jMyimEPNg^J~Q_sACr1B=}BJHwqu96`ns}W?FcC050jf zO}eU9WP-e6;hh1vgvlGlPt=MM(AO=zDe$dw@iysmwW0!4w+C+rd?%?Jg`ck#jUcCb z@Jhh9O8;%b7ivWds38wt1Ncr-Hws^>6?H+uC z|2s+DD156{tb^R`!PoY`Rfca9POcN48O&)9zN-J7q$Y%i)$}?Mxi+l6|Gte~JUzY& zYd5g(j>tXzu$o^dT&>7w1wP;P7|KhE8rGPq%@@6Dq?RhZe(ylYC@WPi`n`d>?UNn< zCuq1s_${&_KMuM!I!l!SKO-(Kl?CmSpW@GbBWUL|Ed~v7zcR{1{KQYwHao`?4caxu z-v;gX3ChU@lvA;YVh+p$`;|_=F_Vpx==)d*KT9FD8muX(G!L=NuhBBAB{6^FL zO2luw%(k_lt^6@)Yxv8-FMPgFnoqVvXc>57jX((LzPsGTzc#mYn=Xw;ulMpDV}{^ce5Jc?5ComX?7la zgt*SqU~s$iG`lh|oM!bsZ5NJG=VoAC4Yb%f^M8@5if=Te**W7t6&UClHQ2Ni-Odd! zt!}r5pSG2H^jN7wQPT+dv+&o+kw6gVRx5{X-Bgsh48t^ROPwr4Wj@0&;+2IAQ`Y*+ zK`M{)SxV6QSL=OKHR`k#@fAL%`h%t5xT-chtZ2}hMWd$v0mL@7Ui+$qh??cMa8#iF z&1e6K8cw#-GsTxJLJ9Z%>&MoUR)+PQ^-tDarfL<7Ed2YF z?84VHzW7xAqlIsK7!_(;(qDSWz+YLmg)h121w!(ur2;(rt^2JHz*j1IRLPf%ei&cC zSn>vefBw=(^7V%0wSH<1;uL6b40Di6Y+o;RnenHVDu>=yLTG!7Yw4MFQ`4(F|-A2!^8%! z&2SIRvZQYD=g-QM*f|BFPP!Ln)+aS2k(^d6y2!O*!-}}AX}2}wwmP6gs}~Dkux8!X zoZFgrTMKS0>b6SU)(-2iwdS^jX?3}+zp^Ia(rqw*Me9;mwKeTpA09ZskZvfkzUfy# z{gnG_^`MTBam$dg+&Ik5C?MBv@G^zzs$tc+tpJfn)E1ZHEWK2Yft6}nnWhyotz2;E z?T$Z+O{+7WAH9LEhZNxN~4C2)!0 zkTCs=YY}ox9dv0o>M>2Me+E=43V6n7xk>D|i5wt{ldd7eQ#5 z3Sot`>eb@2YK(%_kZg6CR+`mK<~Jqrpf^I$ED+5}ElJl}$>~kWRyf&ePPP^(yergC zWAWFSRH@F2E<6!~s*Yr<6WSoGRjXtSfW9RB&e9*PZXoq)^|OBB>miOoN$3S^c<{aJ zUKyqc*AZ&*MX-3p7=eAn?hz9NUnIC*Q14|(&%!ex&T?x|@tY`3Muopk|zN3wsB_VYoEMMymxruo~4q@#jDP`70Vjy-{_> z&}!Ox~@j9zMB zNE_C!jcB7p%CfAGh1A_DAT?wmhF-Q0i@%wW%aK(KD(s(f`dfmkI;~;6ii4(Ve^ZJ4 zXFv>!S#3_6C$(jkRcTq(U`zRCQHyGbdiu}lYMo`(Th@SS4Vu=FX$@oiap#be*=n$? z5g<%j9Aax>z?JGy8!hY*6p{Wr}F(Wr#O+oFNLj%}|^(`b9yJGQY=azz% z<XF&>ERHX<-Xub;EAG%Z2u^^!HHZnp|Ds_-nncK0MV7h<@VlwX8nN zx@ckZ0otUP6oW1~$*lokQifeU__%k}C7u51m}?wQH77}O(6WXsY)Y&Vm}6o8VU0t; zE)@~iG@fnFx~|RPAto3nE$lw5h-FP%){JG%g3IU@ld9t^y*PG{(7VNuSRs)`;+a&t zPQ$G!ec}ZMI!1jnfs*mZ{KK=C5aboZESX~~g+hg^R(4>w$ zZi?`|9;=Tq)B245ms!FLd#n+UH7a#4s%|wJQ@)|Hs7Liab%prHJl43!njroH>*1ebFyhZRAjV1NkBqcSUO&OxhP&1inJ-xm$Q$ zoB5!X<{1Q~(xW@StHPSCL zP-wZ)O5{b7xY15vl)+8{S6ELsfvXJm61c|TMFQKgTxeem5ZIApEtpm%8#Y3Sb=EUR zpzv~zFiE%i8`mZYXk963)&4WE+;N;1xXh$}XH3*g+$U)-fgfetZoh(^3APzjYP6@&u%|G5 zCzae(J0v$Br(N<@&R2lXgo%iFnrf2=O7yAz3racOFOfAu|RJj9^o1B(( z!&Rzu`|Z3^>>W>nwGg|;8rl?{rQH}znEt9VVE0oy*kwU`=1HZ5H&~$?T||;G|N{-N?LAoeC6~+KBVjKgtc>+R_Z~73nK! z?f6z#Te@vdQ1=fgbzAL1Xn;AxU*!huMK?NZHT~SqbI}%?w$dl(zYSX9->{`i(V&&} zZ*~qjxCVW*Rd=tLbE;PnTs%4cnS`P(imhD_lqx|0`y zKTekX1yBWwkb(9woSn;cso288-`Kdim+4z!m4U4ESgj4U>U4w-)V_tknuZlP35pf+ zj!7-h&bN@Oc} zRf>gILC&i>4DzeF&{II{3fd+0?Tbxm_R0JsAimNL-U5Tl8ulfzQDjgTbH;$y5F^%b ztF81wIC20#;Xb_8_O77C!oVtuX+Y1CEgeC$NWOm&wHykfyj*g90Tsp6jWQULM?J1- zLSK~nD33twhZc)dXauN6Ka$vp$o(6oEybw(Th$&-G1{6GH$T4US{~pC99UXNwO>M0 z8hNvZ8qTBs(IbntXni~k>6?*L@fv;A(3fuKHR3^1UIhg6=xK!VINp%6^FrH$_7QT$ zYqVgzh6TeKc-qeE#rW6pR5p1Ml53REf51s2U`ts;e2<5Wz};(s+~w}2imm8(FqpQ! zcu^7tLKg!Qi|dO6a9clG@Rnce6zvfhet^ESr?{LuA6<*1+MpLdJR!Pe~iC8>Rllf zdFY~DNX29_=0?_Gr6+)>1=x64=?&O31oj+O`U3VGfn$f2i!^oFaUP1=R1}!X0rZ21 zfugwC=m56a=tX&!W_R8opu90EW~rD%kwZ~=lGt-rC~#JYu!`d38d29#G#ip4`ELCD?mW0xfXP{b4@~TO}AXSH`7$zLAvJ-&LMo`pDqbQs~QQ@9Nxn|6v zJUNddX8}bGO@g=DVS~@;K>2nZRMvC?I+^tyMkR#eZS+fNK+Gu^YTH{1Xv!Q~2Pohc z?`jH)b#kwy&_G8_8tA-!tO9uhC?Y1ARqUg($t}xq;B%rV`rI@wE?TMku!3W;pux*Y zr-h?%FO?yKI3g4sHTat*PuC$@80il{y4~1Cmy`KazDkQ$yN@2%&QOz;WI#I=9aOx8zgM@? z`jwZ?s~A17?DxISm`f4^N7h^+u;x7~2YmccldLV=ir0(nv(&M({1`Hy>Mv3KEh>E6 z=eKEsmC2Yok#_J>rQJWA{3M^(IP!rs@YW3Tb*K|OhmifZb} zZ(EmmK^O>S@)v+h)9v53#ZdA)!QpiKMfC3o{yxB;k2?G|{yxOtNBEm2#0(X62HkY( zaDE92ny7UKO zpV9z{+Ew_=TL2bsCd9lgz?o}-U|RPQ%8dVRdn53Jw+m?RG$4hV_O=oK0B~hSC6Nb- zJcOdK9h5Y(ENucsA+2+T6u{4xLVIC9Rp-D`NMeQDEJc5=n@r0ixwC(ydn)y{pZl5@ zrCa$5iXkHvwhoc~lgZ$UP%%Tr92JX*Z_D?OxFQ?rE?0&EcHC;7Z8w3@Dy0qa zL}2x!N=ML6C2-_Xr7LJ>5$LN{df;sWTdS2mEE@z)S1bKNyOhA<8f7qOmlN1uqYPtS z5-1*1MiF}iHa(_{2kiy|Cm&NLvE&e#TdPE{RukA$tIP!LR)F>lbq#BDFlclBZx7&Rr8#%62ZnyghEND>bw%daQ_B0?;?O_6=4NB8?dz8S+ zA1KY+?QsIfexS5&wU)#N=%k-QbO`6H5PfdzRQ%PAG%h?Rf$lpHPOk+lvH- z88cxM|^MN@3-I@^I;vQ4665LTbiw0;>B(V^Yaxj6c`M(pjvHWkpqI@-)17)XmF-`5OBC7XEzXqG>8-sCbK<`4-%2;-f>$#GWN{$uhC$v+TUCm7s|aFB#j7CqMZ7 z(lYV!on_(!OUuNkca}*W+-8~BQd(F(qd^lNR|1-baoP%0YqTmV3($lQ?kp1@6oNVr zYMGI>6f}7gYM}zBdogad83j#QK~W3q%-;V%Q2~FLgMhqPNvTDAsA<{e6rraG9ir9T zg=I6vO+_n0Q)xqy5&>=|CmV;J#n{A?dW&pOC^U#PM;4@V8 zfaaAs13qu&S3wh7V)!N(T;<6l7!Vi~OQny^3vV1 z%pe(WHL(xV$})nYhTM%b97`PvavMGZw`kI~e6_848zBH#cHtNlrnN#=X``ZP6;)b6 z3Ui^qa2l!#DHaO_EG%5X2;fs?h>?Yb^F&>sVggzU$*jUfmY`yiaMPr|ADRni06k0Y zDkOImwn5*s5rQaPC|rZYv*g!8a%7FIz}BNJSx$hDh%auQx;7(8sh=4DmAb zaUH@FTPVxK=E*X#ZL&;km@E^Ue#@?*1{?2CgC;T)3)u)DBqkP;5kSaGEaW19kd`1$ z2|`w4Ark?Fq{Kq@L3{-D5`?@2oh1kv33Vs}{ex6TT4Es;0fel?LM8$TNr{ET0}yf& z3wa12a%Y{f!`0tm^9g#-lJ2q}t%v;+_`6bo4iAS5X07(vKSEaW7Bke^oyR9p^Fu6a%lyvaTRWwZ!_eOyfp-7P7jJs(uTCgvZJi6 zlAJb2JUL}psdFf;%|R|;=TNkowB+aXqIwTF?je1BqyWhe#*rZ8J{IyFKuCRHB0t^){Z4?2aXYWRI+L}R)y7B6H8T013h@c>>v$!saVyNi_oIb7%CV!6Az>;TcN0!GO(R8@qiTx!5s8Wk%N_C z;vS`FY{%M4m3kIYh?R2+dlM>;`J=75?qvHF;Jgl6Gk z0kst|F@7eJR7^4-fq15hIpd}^u8HE_#FKIh$tF#T5EeZX53mtgTyLW~o&;lZ^G#h~ z<>VachDD2MCql5#jRuk8((349CKso|eGK<&mRzIT&{?V%!^OV^Ge7mkTA1eNC&1k|JJLAMFS*g0#*8KCD+%ks+DW+H2@xUKiSY0owt|NN<-D;|t*XB`hIq z?7L}}{Yzk9Agg{!R=q$QhF`)UJn@BTFVLo8#T>aAZfC zx&!pPCt&k$C#jf1QR0n&j}uM#ln2?dcSGvgzF3hi$;d<77cqwJnS^5ch=EX0Jm8)q zo%2*IpeXY$#uUqEMc4;GvFxP$_{qZFNn&Cjv*1Qbx?Z9XdkJI5pY>RD!4AcKjRx*D z3eeYRe!sSY)#xo+Z1EHf%gbB0R6N*vJ1Gg}w2@4g8DlG5UPB;HQ#8}*y7r3{wMVFU zjoSHuARouJkAw1ULcC3+4+;8+ifN`#Gku2P8HQh^ct1kL2UPet{@*6>Ln=O^Vw#aN zRBGCBO?@9_iGhoLXy1QR|5a1l-Kbb^+;fjcbwvnGJr0b5H_X-gWI)EdnRh(VYk*gK zSE2f$661+hs;l#NpspX^_m8NU$M3l(0g!6^crZ1j9d9)0(qx9c^4iST5%(xHt&UKs zjkv?ig-=UOP0dQC=Es;)ZnQFA*;eAqN^YmCaj4IbMyVa!hS_-ZOXt@o|AyF` zef@-1n|)NP^b9dmsX6LgTReon=vid0i%u;{HRF)R7OEBOsS2|^jd+hs@8T62upE~x z+Hr1d#MekH>IgSB>TBoPDA!WGlXO)JI22~h&UE$tH1%%(za{l#Di3PvbENyZVIKG< zZg3)}p2u-8PYyUy>OwTo z>O8(*%Vn*m)~dCdR&ESXyJ|TpR0jz*y*)W|{wL=BBoOt}U>;Hs^H9l#Q~X1YdjnQ! zsOnYk(bRj0RI;^^t(!OGH7l8~dgazhFHi6Ktt6{8@I`Ohsx|Y(8N(OCfX4hfrm4r! z2bCdoifo11JY^L1-!%OVMb5<$X;F&WV`zGh;dntG+*+2*Esbm)W!2@z1YO~VS$1H# z!OkA^rtr)~Z;0LWrg$3+*EaMU7&68vH-___SzN!3tQ(PTZP>=%{mD<%pI{;SiKhRH zzkwV~Q*WF`!uT-`LH{Xf3b|8AuyGq-(z>~m;cX!re!Vf-znjD++&sz5A2%h3la*## z2+Tu`#;jLaAxpJM+3YHhriQaH(?~Iqj2`oS<$cmM;eM7Kjd#vuRgr$5z>))-pe5v% zBZ2@#giN~A2nl8IH)|}%d2!sB46jugUSQ<$N@Km+nKLvXB&0nl1O5$;cO#6K=(x-3 zyQF2xUCis&6g3T^=Kovr%e!(0njOgz_s5;dUA+F32KtPTpC}8Ezoy+%Yj^St8~p|^ zi~6+N-@_grF!oh5W3R(d7hn$Ksec-jLHX{_qYS87wEAmLy-4M|Tt3yuYwS}O`SPm{ zZec(Ms`@MSV@(|}P-;(o%raCOPyL;77a8`{-!U$emHw)qH4GRHyZ}G-Pel7w9}n(R z1F{kF8k8b(p%mq>$Z-JS`=>ZO-=)%GyY~-L=PWk;_l?v)HN*{FL?TamE^<7!7_m-H zxnsRt;n}ugZ3=gZ5UoQkfseITw!7?(Hs{*G ztxS;R_)_zzVVWi_MAk&|ZvZ|4P@i>g`vF}ilI1#EP7SG3EHbx2WGW#t=ZH)>A{8t$ zO(NcTDZZiZ(FHg_rt8)qI;6kcZ3Ip*nOo{L;A zNX|9)TJrfZb}!`w0htq+dxW{3yuXxhF$2uM!WxDcUX!u{-_4b>#?GIyQ_MZ%hTC%F zMwnMnZlR7b>?YWP2fN&g6toUeP|HSDACbK~*YJf&pQV(!0~Va*ILmMW!zENA z9r`O=)CDF~G9k)v9mA^(H!!@;a1+D$JxfS6GmKwC0o=-PfZ=wAGa2q=IK*%_!vzfY zGF-y&MTW~59$>hF;UR{r86IJ{p5ZZu8yTKpILz=A!z~O?Gu+1TEW!59i2H*NKPtl) zn5)U9TDi5rJmr+*p|;3e$Zx^55_HnW)!_R?UE_=K+=O#0XlK3aB$2YS4&Qpl@8iT7qcnClIHSI2#FS&*MP`|#Lk22TNDZowB-Cy;JC&sy@r7#{ zG$T3Mq*2YccYqDXEH5Z2ab!vir#~%kc28<@Rd|E9E|lHzVx+_+l$eC^w8hZ?UJ1I#K5gSEg6mD&MxT5 z7{?oOXN8=_;XHJYO!*4z!($AG8J=Lch2bfN+X(jV{8_;KpatJW z@8Ga)wK|!lmBY5x>S88DT*Urh+IH3tt!F#OZ7*Nc8CKWFau>OrW6S`<3k(l293|LT zHAYR24RwUEtIRRR@H)d21pC>v4?pU}*WkO!IKMRG!;j*IsDif}Q^c55FXETtFUkH2W0?tTuu# z#*g7^@eoZJFn%*(t#}DNw|##5!uCZ{qCdwWWj{BG@5o2+4S8h-UyujEKJN0ZZC~Fm zQfMBg07F{?8#`=;I;*>V3U8hDtP~~0`EE&yhx>)cwLTwC;!IJ>36DHk!R*0IZAu9+ z1D?jFf??hmb+@Oelh|TUn(7qt^6nIP027-teqhKS?QXdNFubX9+8EwLoRjEJI{T+L z6JXjA+N&}wK&f8u@rfG0H0 zj$PIfO+RvkVC}heiZM)Yype&n4()TL;%d6^4zkB{-bYB&lZqwm_dX{4OQSo}JRe{@ zw&WAm?^8G6Q#atV;&_joVc59;CX_1o?bu`&@IJVg@;fz)v(I&-f^qBQUIRN+&dCit z<8YplRPbg;TjvW-?8x%SRAn9OnPkx`44LVz8|+muY1=|%l>w=J^<)!{#h{+M-6b@9 zxR%n@bi2!ZO1Y1>Q?SIRgyc@F(pSNJmA*!@PAl+)*~$Xi!5hV%kg1d~m}T}EN6Y zkiQ`yJ=g1&@mOridW$b!m)Rr`GMj8AbB#ui=5JyThdtW9W`;U*wDTo&|1$tJ7mv9umiYnPgBzWG$D z|DIau_1tUpIp+N4iBQA+m+Jgw&xV4X{>WmXSF|_CIkyjN`~E z$jt0xn&Vmx~FBo1l zH9cGT1@-s1vPcfmgNlov;~Y}LG;|iozhIA9#IYzJSZdiHut`+v!8#L9P1w_&(p4Wa zkxC+Z9AcLwe#As7^`OriaERTKc$m@bQ7t<}2H|%JI97u4xdI;G0BHo}U>d>k9LN3R zIWoTrp60B`2%3_RecBlgY)AQdwvjED54C{QtEud%k+e?ItNvR3XH84>j#Ah4i8O_u zS89>82^t<1pRY{$H0>9^zzIcI=`>A0GH(QU3NNGuSiuWws-bBsX_~jg!vt;zQ`p1~w<{#(lMU$T|h5b{Gn2Y?N zwfJYaK4;DGwbdWxYny)+SL}RNGIU+Hlwmr`U_HY`1-0;lsLf>PbmT#3FW^uNw#=Y+ z$ZM#;4PPmm1_y3~v6uNe>x^<%X?v$clg(w}_ zs;)%xy+6{u&+6VDzX4n{Gr?WG!{Huv8{U5)YT$0o(3KuKnIS7f^BT$=Sy7UqYKk8~ zBXF9;g_)d5 zr3F!QJKX{3xl{HTVDX(Xv7v;G<##$p3@2=?xRbiT_Eg5mBMBR`?s7y*V?bRDXpRA$ zF<>|bOviw^7_bln)?$Fjax}YRKp+NW#ek9+P!FH&2*-d<29)wO zunokJ!!ckq28_pm$ruoc0W&dRE(R>bfM^U@jREU1z=fX!RN>et&a|HKh$L8W>c6^#l zWjl5UGUL-E6`&J>kr+9X$sCr`EX^Q3T9@95&tBkjQdgGuV`Y&uNrZVrb#n73CF&L1t*B#h{VqJwvoC zwDFu`MhP4O&@-GHGS0pcP;w)9_+7#Ob!EOv7Awo*J1+fU}u$#h4_P zxlCTh04*dq789UcQRaxXBO^90opCc6A~Ts7pcQE)zLc&K6eZEMcq{8rZ7AFau>+kY z*{(zvCCFsg4%N$K_YN%Z8Uol=0%p$+_?QR7w)k4q*aLnYo(FF7e| zhwOG4X$i%-awX&)XQl$^w3K=pf$n%G86rcA6Vwt1^tQR_Zcw^Ihuf7IazGikyZ(KE zku%Kq`86=%%hInfttRY(_7WIGXxsNJwk- zJ}_Q%2;Pcha&-R=!z5aGpLf7(c<1rAh`%WQ>cF6$QA#r~=pY_JCtjSMBg zVdu_8gD@s<$!%nKud}KTld=is?;`wU0*tZD?W2|>P-H2q#6BbScd zG6GAfAl`yRa!`6FMQ8_MWlF%aQ)U7T#?F$;ECx&6opSI;iNE1aoH<3IFh{jf4)q9S zB4O6a;21lA*Eb2W&hfa586p=?BvuItGGhyTL2*a{+m_HOGZE(KxYO{`4JcF!mfTpt zb>8VjUN`r@goqbeo+tmnow2oUh;yR~>RYU%)l?Y;9^*{lctUQHN57F75;I$3Td0i+ zFz8ALfiv+oB(f(#?DDkYqdS^LZi)CR`2}eng-5~CgZkQyo zz+KzC*xO)P#sA6-p&~5Bfs}ezJf^03bQqfntP`oZcUfL6rn;?0NwoMb-NYEIQxKNN zNuK*rt=vFrxXa5@5Gx^C(*|1WT_(|NHB6ND4HPG#=jq-S>WU~lBz9P2trv8Q@uM&>KQLH@r81wkMh8_0;OaPw0=$sl?sAsspRB6 zniy3H@~BqF=LthJPn^9`$stoMcPnL-6+-bODXZ8?L&$TjlJJ~qR0F9=WZh01CgL`Q z(Hy6}RXu3VLeh``!<=b?+_E!;`Xv8@%nZr2?c4@bth1|x>evZi@cqJb1l3Mf71#r? zD*?uaioM>y(~0t)Bc@vERtB7IH2noaL$UT_X>LDh9o;FL7^lj(Q<PfXu>zviXW%A6a%Cj9n()|K z0xZa|ppBR+NTgwtNL)cZDM+w3ZenGkdzUoPMR|sAmt$fZF{bX4ePmKxWy@xjJ)2ZA zF>9mBT&U#m?I*^BDZ^APaaxE{CB6aoJZR#p_DVY?{|Grj*?;G*c*u1Toez~zw8{A67(cVhhXLk8z08+#b)2?Dpa>Dz&EDA#4ql8~a z71@=hYDn9xqR3G2#ikpU6CDwDzi0HQ-+DLI?h-} z{nV6EoM3iFY0l<|j}l93w)EdRRoc-A-0ykVyNbgj5iTTO@GzjRY$wHReAv6jv~H&} z-U6TDU15|j-W7(}?jC0AAsu~a7QP-NnD$pA0UrAr-_Bb-3%PvI@^Yl5dxCH_Pnn;Gy`;|6UT9 zd?6E00`VDU6;}hH_$@gVpmQJ2WRRt^Vq4e{HdxNwk|2|FLv-gflnbn_IE0Z!Q|beaaA-S)Fjc1etNh8EsBm7ejt89&4*SF_yWdC|ks%w<1B>{;mSl z72XK00dyj6U4q0Q@PNc&aPOA!bU<+E?w0F$BRM&BV?{o4VWZ@e76!8%>2oYymnjGA z0@n(5$1;a2T$c}ESd5>_P_IjOQ*7%>zDlh(va_lfu4WU@FrIc94~ECv$fQE#QFmruy#9T7ST?&jO*^DNeu5R)K_wa3L6@>A0# zcU#Ua<^oGfyDl?ab~kyPcYPJm4iEFdRx|o4v(#_EH!^;i@!<`4>7`_yy6q&Jtfvk9 zSkV~Yk?>wD_N$oCeYYIjb6mT4w;Wr3q#Mgm`H}A6-Eav_grU3Rsljmk>EsBI&JM97 z;Tj3DYeuE__^HuYLc@4m!^GWmE4ai~Oy2EmN2cyZ=AScN7|L^&&f@5@jgKPZmk zm#LL!4vJF;MUFjJ)Vp6#8huAqtPEwYh=k{gNSI#d$xybE@HTs|Er=}@Z0E6WI(@*# zk3H3&ew;4ryHCl>^YU^*UM|VYWqG+GFIVN|y1XpYCD|u#*)S;GCvuAw<$zD*`+z>- z6IFEWJ$+7IUZ%^NKJhwT2Ts2uFIVYu-6wvhD7SoK8OMIxqoREleU zsYs{m(Nb}MuBS@H<8*zwR6Il1H%rCqbiGn4-l6L!rQ#}Gzb+M@({=0pBI$ly^Y0hC z=z8>iao~PR+ph1paSTy~~A{T2$SeRI3@-de!2in-P4u zO+w?zs;cR=rF-!qvWabW?R2(Uj-^3DYw1$_Mb%H@+iaj4cdHeW0noa`a70ZZhO{6U zO7qqK!U_On8B&3!?jZVI8K5`pR*Pl(fPAw3*&?*RGaJ;QP>c#_BQ+-v)Ux~-70^a% zVG*e1aVnsV)O+`VT9L0-O2YvOIFlUnfqIY(J9Ix7D)ZGLyeB824nI34s|AJ~J_1~I zzFIBC0l6R!w_P|OKz`^Ekn7^YfHn$0S_5i*zFH@R0lB5{>n!|Ne+_a&zFIHIfIN(?N_@vwA=pQq5V5mwf_G?dsK#2@&9*dPatwh z9HEVYe4P7Y<1yUk_?~pQj;Lv5Y(@$gHpX`*;+wQ+>Rm+Ni4V*+$G1lsF+=g4jl_O) zd~c-Y-2>{T_})k@+5_sQ_})m}w;$9^@f~pt|3E!Nh8;c#hE4I^F5^3u;`_*hpl*uq zX^6uuC)h2I90Pe%d~X!4sReaYe9ubZQ!M<~{{`et@jdUD_M!R&nfBxlz_2O47aWF< z)RV+;`ftIoF}@Q{KTGtd&Var#z7zDPiT4YY=v5kVsi9|4MWu`~zzTpHQkm-!9rOD=m9gw>i`PXSc zI?)DXJ|mCwZAGr3)W(h{z~qD!)$dBIkW}4C0VM;5s@W$|b>agm_p-{f@k5VV4DDU{in?Ts}r{AN5=3ctx zAN%?~(I;-*C(NY%!c5*zcl>!IJ&UK8i3i`o(6wWq--oPV`997DK#QKvt}ty4G*|d_qDhlpzfTNjT!Kk& z-Y5K*na34Y?LhcF;z^?MKsyg2}YL#T^T+_XxUa3EPR|vl^`{S zUnY`l>nPfqJwG0trM4PDZ3$l@Y9YIPF9Z*OW9IztW{9B$4DI17#IT!8J(dsR^!eXS z6R{n{?(io>WJ?Rv?-P^3UEFRrXuaWOqDhmI?-NgLWl}Fl{o$JM%SM*>p^>kdHUip2_(Ys`>^f)}pEGR&v`F}6qDcd;?i1=KOp1Us z6Mi$^QsH}yo&kC;e1*``Raf?jyvX@TMua*$2kK(@^Mt<3`@~P*VZlX^R>NC^F%yqn z+9y2XO{T4aCe9osnjEp$87lnX7Z@RG z52(FoP9&&TK^+Eln5ey=_MLeqL46O@Ay9{i+6U^zGZ%;|hx`f~dlBftGj9@F2IS=u zVZOtpL6AnzyhkKCw0P#_gv8^FUIcpe%%z0HQAkuV zX%(ckGglH42N=BuwCjhTBqZ`7v6o4%A7VEA@au%cE=Ie7PW@qeTC5+1Tk(rw=}bxm zDeH%O6Qm@Nl9`kRQt=O~h$NC#e3Vp}yjQ4O_lob;+%Z&Ssb;pOe{!z~?^p5sLDM5e zE8oXeQU6Mf6fI_}|NF0#B1L#mv(ptRQvX3UG=1=VTM>Qz-ONrJJg@5hq_6K4s&(vp zLq)1)Y5KtVrv1oqp=#j#*e>;7RqfFvkaYF$gfP`zdxg6QKT&Gv!$oBw72o+*Om(=( zSEL4zTMrk7klrH^v0TGN>I>A`fxRNI8{Y|6ky?xtAwR(v!|@XhBSpE`TtEZ>iTG{H zHBzMhk}~wi_X-bApTRjbhJI?VfXqd=nxg5?>=gyz)p1UNslL2dq!y_n+0aK5hKv?v z6{(p}FY!wVu7!`mMe9+R4h){^uoo*5lOd;0gtJ4f>QLgeJ#X{Vf?*_$Et?&Q^J{4)~SOFOvo0xY}dk1v-EJdast+6vyCA$<+y zPT{erEE;c>|67K1;CVFE=lAl_cG)r8R#K_co_l(l9dXbG(crg;7!TrEx3l0r7I zurVV&L)u+{_bxIdvh7H)880GWZrwxe1+O>YR(ub2m3gG-DTq)Ce9@`2r-0siSS^v& z7II-DUVq>*S8jhEX%^G@Y=yM_d44IKj6YV$jUbVX-+-lsFBFP>rZ-ujUg|Ro$iBBA zO4;WaGNip!Al%-4IbNWx%VoZJf%4LMA9a~Ur0^BQD8;sd45^P5Xq!ZKPAm{EH#(k2 zmqCGWsnM4_U>|jvB_!`Fn4siOK7nRU2YgZ@yB0rS#d2AH{D4?B(N8^wL(}Uon4}cd zRT3rwTwCDLu zXgYVwsb`&N%#e1no^?VZYuXm?Stpmvy5l|TpA^y;geI6FeF+;WJYs-fXx9JjzoR`- z7wg)~`{T{qUm*GCf6+<()V%)%?MP_er~VbqyXSfSpQ&B%;;s2OwldY4&&yUX11c=f zz3@oTNzF$<%BN0dLnou4bF&~3bUF*1@RkLg&iFAqg`m?J4?3=7&~dS#^DBBTf{slH zI<1MI)0zl6pyEMiUB1|n>~wa7pko(9B z9&|2<1wqgm&QAuN*5nae#h}xg3_7jxpmSS1B7%-9enbQvml$+h$)Mwk2c2KVBO>UO zCxcEZ&X5pv%BkZZ=vW>JIu;@5tSb;ZPJ6O^?PAbrPX?X#c+lBikPJFc6(obsz5>=` zFk%%v5_CLb(D5XLjz`Y+Y&*?m^`3S3_8YS z&@sk?&V~2^5p+!P10v{{#GqqJ1|5?abgqd9M9`UPO9Y*}CNb!YGcOQyrVwf<=*+Yw zgU(DF3p&4<#J*!r7St>T9dk11nBzfbMP4H4EVLzp&O%!}=xof32c0r8=#)JYbjspE zr%VVs9b(YwNCuq_G3Y#%mkc_Y$)M9DG{FpM8#Y+bsT7(u1)a=z(5Z|!?@A%)RK|mj z`jMccW6>yGqD^tx|B%2TnxPsTP z!-*YSfy9toA&unlGnssjxRJYq_TZh@t$DlnNY1no7lHV^fJDtGKqTi9w*DmBQLt?T z9Sq<2xr6o&(_V>W=Pv%*R*r@C+t~9&&9d=)cAeMTCSK?Dwz2Cx+3r+O%lS8=n7iK2 z;cmkGNlYsz@)I$4A|F%HskIX9`xPu6BQDR7PUPcq0$%=>6Cc@ezj!hqqXMq<@RMhg z`3r7-7HKB)R~RWxmNG*+nUCuoc)H3MkGi=3yU`ery3jsuWx?E}%@{8W?&40z%aWVUPv>Lmxrj8=`7g0Fd0R82 z(^Qr`Om@Yx;0o_GV?6NUCi+bBm^1m9h%O=hO#UU7zI11XbcT*uDv=F~$9!_RY&L$( zUFrO6zPgR)aH3}OZ?iN{S7b6lMr@+uw^j}@&nj^KK)29s9^rR#V!DJu;hyCpJP zTWT))oUE>B&&pI=n`G|>TwmmJtFSW$U*?i!oXf{`S{jZwm%knCpCktlWJu?zj0fRs zZrm5#HLuN$N8iJ^s~J9jo=+X$(1XB(6L8>CJq{WpnhG5-ZY`oCvL z3#pg>Yld_&AD?IN(!rLOz?sk~3%5xAkN=U*FXq2YV(eJVmz@3g3TZfppUmX{hq&?Y zJ7^EyT>n2`-NlFFy)>Nj8WNdNfN;(^Z2d|0$N%d;HqgP$EBQat-V3x>B6(vMe{+k_ zOYdUOThvQeFLPq*5ink&0dYKySFFvbIftJZy`aa`;}XHJp39weU!HYiYz$*;RPIzr zYtb(+(xq=xjxY~tX_+2aXJ%d<+1!i zT=&S7*=shX#`5{qD}j>r>AUz?ezTtcOqu!`GTuBzc92Y zcc(&=#qa+FBa5E9iCXy9Dx?qbiL$2iWjirO^x=qQJAcQ%&t%HwSqf>{PQHIFjS}k& zT&jWG}2W7cVa9UK>G5X`>^jb+4|)hP;HT}+=*^K2)c6TON`#M z+@O%YhE4xk9tAJo$p_Z*7^^FHqOlqzGI`qtkSVgQ!Tw27v;()C@^O(^B$1_V7UFg3a+xL`ub)szH7s5~xr<-7nWOtG zxCfQLWi!W*AeW*1$FcP%*{+JGH%N!_ahdq^%G9BJN%c0o=RtGfF^DWXYe^)j*_I)- z?4&Pcz}&oPGq(?WqnSL`AQ-6wj<4nS;6f2Q;Snwrv5~?fIE@L7U_b5vUE7>!1Q}8z zb<4eb`LTFo7|WL&Jgk$BQDeXrZ%G?#42O<3Zb~g_;}6nl-^B;$LTY7dz=#_e^q0^s z0!Du2>SaJh`*XLc`3g6VU(?fF?sl~5&gXum-NNnMm-SrwD~##{)&1Oxb)bYB$1m#f zyTmUst{a^1x$VT|3Qw8zTtGGBR%vG3bcY-Cz;jK>q{sA}nQvoB2f+ECdnuW;iIPsc zHJWKk>IWTq?m{wYt)466_pziQa3jy%P9}Xy&*?Q&ZWI0^=?LiPbH5WURPk|^DvI3` z&#lT%RB?-*JGGrr6QHJ^dz>it1S)SMI`O3YkEV#wz zUQBR#sd{c{)e6Qfg5!?AlE}2?_f2@_<-R;YnR3T*H~RR6WWrxJA>nVE=v<_MQyssS zO!yE9$K995DWM9a_W0cdnRgdt%zZLOq!y(9_-{nAXF7Q|H*x8=A&9y!M@gWEpz!!Q z4Ft@ZnrrNch1gwod^_zH>OYJ$WA2k@iQ?g-x7y?b%yo4Mg z?$QVeTo7~|zm^oVA%_=`L)d*XOo9#wyvOe*1T{^_;TUoVxhp~>@IugY{I{f_7CG!g z4ng}cAVD7l1IITe1zV8AcI4o9pY)Sp0D{2r$CH9} z$YCRL7<88ok{|#<==i>*U!}Z6lZ4=f2!Wf>8*f$6reb^6nyshZ{Mi&t2*xK@@`V?OfC1XIUvCI!RD;Tm%2ahLXxU?Xks1oOv#PY7yWLk{PV zgV$Z*CBZxdi^o^}FQU~oFC&LnkVB{YawiEEA&|PZBm{XcB8QidgU4O!A%WC|{^NQo zDQH6uFCd2w_sI?tq(Pu^H6;a2$l(}rXm^*klRyQ5#`Qu{P>US)AqSWHq>BU^2#l_m z6M~w@k;7BSq19c{N&+JUg|2f+!4~AO9XT|+FE^8*5P~w-a6*u`4moT@4o-KelLTcD zSX_6Lf)x;~g23S}b&$XUf!*~x351TBitO#~lXfEQAe&w5Hi$0f{ifqS|6Ru^ZSGPV z37R2rxwa<-4|Uw?Uv*rr)qT=R0v7}xS8Y;o8#&xX4i4lg4Iv-_l(1OW)buDeOW3&`O` z&Cx8>Y5`tw&g_fXDdDMAl|53t_& zF+OEOO3IdWZe2R8t4-$~r_bJFO~S_u^wEFpCE?>W`WQ~r+>7m;uxJ;+<GSRi?)D0ttI=b> zu0XvTd4)_N&90Sm^6Y(bPLwt<(ww_B{@xPMsfP0$F^i38C#pK z&wgCaxu24A%86s9?1^KLL?P+gM~Wh9g8EfmXn|d<0d`UQ>!Rk@1x*`iI#cR?a$Jrq5;_)qnSbg2aR$q6`vu-ew<-L!S(yTz%FI$` zf&MGARPlqHqKnwBjZC#B8>&YgV@rz3F&))t(+1FwIwmabB*$`y&&30rzj7?e;}Wq; zQh>YFf8|(`-$8uQHo-A6Yo}n=Yh>0a$LG{3VOD=;mwZ!~YEze-!|y+&vwx4YGRlLe zRuQ)e^%`d8WMQ?1XbyH>V>{Q#urqE6rCgq@JpGxDrOWZk(w`YrccC@VpDU?x2q&NZ zRBTF?+<=m2DZ&qEl>LAClq|eIlE!UG!?01C#&s5B=6$Rw4Ygt&Ze-nxbS`~WI%nuS zHny&lI-C<7uJzc<35j&??`c>Lna?sP!XL6Y`k zS&E?t5e!e$IzHuTyd{@E_cP%lL+%&aPWvT0CG(fg;*^w7t{Qtnxq5~shGvFkKau8TXJrQ~!?poj#lXj$8G2_-y+-&eDQd z+4ADwq1t(LU24xXsrY@sl&3MuOSqRLaP6Fgy{|JY;V#jiwX>IGe3o=|N zUy^bBu#9V8cTGn24M8>5@(QU~gS4w&lX0GP=VY96x}{>e1(GpHVlBfYVO6!OUXfw# zYKwQ>6wxuz?uW#(0HImsMn&B$K)5MDxT%(y$hdzeja|Z5ye@$#u+fdK>yG8pS8O6c z(3Ve4Bbxg~6cGa+`lmbbZVqh;@8-A@@8-D2{Y$Q`fdxbbRE(q6;}aad(D7 z?MGTO+Hfr^%W8Byu?=GGRBI-R%;D~q>O`g1wrOuS*zpXrD*Vnaj*`&h1< zFfocZKhmtkL_}E_FPL4uj2goY3sC})ci6dOT&na3nt z<+?Tr?$oqY1ZaqGLg8w8Dit=eVc3`1B*AT(mdk!(U0^*eO^>kqzz()t9wgQSw!7tp zN7!1h11*;ai0ua3+wwB8@q<5(ay&)- zl9gCvcyT0`4`D@{urPdT}&9KGB9S23!=zr;8Y$l4V3EzsP3`Wqe3w zw4;nwR7TI=D5FCtj5%ZUP>raFZhRqCJz}cf6481>Pr}X?p zvmtrD4}0YK0}TBPgTO&!nBfS+F@`aQ6AY(--NiEu=NT>n(|+bK=dw3vGSvKx>0Pt_ zXIbh7n&|xJ%+E_}XMaX{Tbpr9wYdZYyS4Pw^v{OLX6d@gW^f(ge9cyHJL&yk`MQap zRqG~y)~uWQ`OZYMe%%C#d=LejJ4DeO7yWr;RqW?7)%eeM#+yy+#z_=}XsEe2DH?%j z6r!=8@5GwT>tZAtf@rLHFewT{6#2Pq-O$f>qRoL-Q4)^b;hi+%@{_HUL8HU49^{B>@)oQnq7SROzR9S z7w9N%Kgus)33ErWXNLc5c}lt@V;8@e*U8w$JkH3gAHxI5yq+0!ASE72E#~p2OkR0F zwv^{G@K}zwIz!q~j330yNavUGEco5&6%ud*l-t@hlI&ePmoGd_;_^ofd^euQbNPPC zO@}98Ts}Xa!Rrplr1{9rmd_h9q)U0o4bQct`SW_-irl36LCP&RM}if!(tLg~gVsQg z%!Fpp@3ES1a%PP3TfQxwpP8AS;g?XK*wMKeJT>C+Wbi1~J|nlEmS%WPEsxEy z;&{AMCRP6g4OR+h=@Sd2jXxpBQaq0PsqiN}?0Rxn#V)>Ac#zaoVE`;nH3hmXz`;XMW^AOHa>OiS;FX&*t$XyauaC=JP^%C{oH^em+lFIWnIo$y%+G z&gb!`X_>9x5Xi&t1>!lV-@s>4O6d$ggM;}EV+Ig-W7Kbutk2GUtY>oupOKv*g>DZ$ zZSxx@@QjZhD*6p(+QPD0zoEpyU*&Tf%SnCpP-V~NmH7Vnt$78hJ)8LgeiPOU`3-9F zJ)320z>*0K{i($2TO-c?Oa@lp8jUy~vXmUGSU1h!WWqP|jOqz$a3e?KjbP+x&rzJz zyaFB%3w=gpfn^XrWBio+jAe96cNQs#!wKJcK-OnO6RFJSpGfEXjM{Dd9BSETtb~ro zLiIj8+2hdy`ixNnZ$hi-Gg{DU(x1lj%&NR)D1M4$D?W;33wdcX{OlTDwn4f;O${&2 zF62pcI2#Lj!pY5?;WuGXH-5&t?5G+iw=$JaUn^Tb|InxGKRU6t|LC$Rg`;@kA#SN) zbPWF3eUwgb;OJZ)>q2y514o6d!awpWpI+uDMm(xgG#BfC6w(a**vFcL|Isx5cp5)T z(=4QEEiQ?t>He{kr5SuQ&0suDFH6%Zq;VBn<7r$!HnTJXkER)jr|Dp6Tu39KB0jy$ zh5xPi-(0+lcNV9yl+I$+k9-T=J8~9Fmh(?8)BL!4SsARUJZge9Q>px}|GwO;ay(q` zd}wG!+i#|}-}0wuTnf z+ly&n$*z$0PUIn)5!x$A{4g=?8NxBs^Kx<} z$|Bk5!;y#l1TxN$Mjt{zt^Fw4*(B2Xj!sbNcBDv(ie%Gy(+~NnHN0|zbeh^$>B`jU zJjoO20MqfdHT#f%a`m!G80a`!1_N2#nObXqXmB2_a~{PQ?>L&Hm@n|*7HKY8O?JvW zyF)t9?vTp(l$0FBVgcRf`1M0PH{X$+vdH*F#-HF*Hf5(6A7~$Br<6P>1X>=H104@+ zK-Yt2VCRDlVE2PSLv~8vgI;X=9}GOmQkeSigp8&}%va!pMekd_Wl4o}eu@vOU>YPHK#7UN*ArswhbHZswonmt#a6FmOj{ zC}SCyqDht%BmPYzAeIzsFn+8|Eh)xJ0TP+|f$9N9C&?3e%aEAH74PPBzI*dPA#cRU z8$Q>p#fp}AZKHXT?DbgDLbY9=&d2i5ock15!IC$G5g%bI zPqIm;kjCyCQ{A@(DP4jSf;pz<(nFk#wY!Zeb@wC;py z-DKLP{iN=nMmpSmMb4#|3=Ghp=&1f_@(k-wrZeHH$YLoS zXfIZO&9MVvNn`QCG#|#z2XnFHKqG#!>%k%=mmF-&TZS6Ynd{!HkQ$5GaqxRa#l7Gq z{El6`u^3k?%2eMp-4z`?j9K2{0GhZ_!mp{2Y1W2*P^rQ{@R1+T%twA0`hoAmQO172 z4HUdKu{rhw-;dIc=1u&7vLSkp#?Shw(8fpOZM;9x#`{?t?-bj3f1-`|3vIkJe!ie% zZMFQ*sYyF0T)XvSkj$gflG-4Y^#%nO1%~J`{*0n-g zm&mlmOFz&FSc|y=M?Qko7so@pzF1BM@*A+EQA@rQGQpRul?=rsk{uST-P-fqKSUPaO|32S}+6C_W z?_=bEtC9Pm`@9P-kKC7}U_9`MbEN2f*4=n?jr&5A3k%(CC4PJ_95+6kCsAhUq+v21 z)1(N^Y^i5Q;=L)7Ct15jA&unm?Q7UPg{HDI5RAkHBYBby>lM=1{?&E= zU)%3juI;#=?zwLmIdXM`L^BZ09nPGhJ0-Z){Zs3G!_bksA)@9$EgaS)sOI~I$dS4T zQ465dM~tBUfnOtAV_jQvzeibi-@dl|zH@EmeG_lFZ|1G{%Xr)Ubo>3*wT}DkYn}H! zYr{vp_>TWPK8110SaJkZ`_|MKM-&*ff|Jv@U!L>b8 zfwjF;yl*PB)_Ej?|J3BC`lk3av_bzAFQ;Dtl(ilSPT{RTW%|n0)+4yPip#al;VC{7 zEzF-cG==jZ!>d&B2JX*8c)_bw)W9(o_=J%q8}A7ks6BUVo|xiQNa+(s7TglVw;k#> z6G3(1@Ns!vYlv zvuR|!bv3RArxvGp^_mQ+^d9zOPL+92eh)2ER*;7mg!3}^qJK)~gZBdW_!2C#9yk)s z;fK=sJVX!*L};x;_adany;=Oa)4kDqd?j@LBQaxK=O^8hxc<90LAvF;(5z?gP2b}! zaB=<~Z(YM9SOVry9w+fNs1|+JVPaw|-^!~pOJ!c89%(c1`rg6DL$u$z zm3JUduhEG8lB0M_51Edp^G6YhicRC1X~mM`3cOF6$ETy7z9Uhw zo<6E4LQ?NNx{$^gaHQ`Zz6-QyCvCD7@}+naIu9enhH4Dt_cZr-4RYvCI@%p~wD6vZ zoZ`vR#iHJ=yb;A)EGolJ{t3K?XyoxzW~j0aj!~5ti|`3oJ;o&?FGm$UMhCRZcU3%H zMSEwAya_pYj4tez)L?i(79(ug=Ted99)1LqoLr(@_N+`@Dw6DF70g?PRzpJuT9b4V zZ5-!EHa9grg|eljZ`#Fo2-n;lMoG>}`b)T$>M-)TtCs;4_9L!DpYu!^97nD?sL$Dt zQFa(4zO{qrJF{bxC5v8F$3 zf#rWT|2a$1cbiRwu~=hMO3KWgsXItkG{UdDq=CzWuIrZO2{t+VaCH{D;wn$g1RUB@(d}A^&N++oQDKZ7Dmf;mU|FIh>^! zxZQtSmO23!ci=0TC&QEYI^LpDhB1Z{z>sr_;Vf`|5?|iO-C4xuL{S=yo+wf=)ZAHL zZ@Qz9rRsU+@U+u%M|61NPJo-dqvQ^ka&+KnCxV630a|c4cIWK)9p#d`qJD;chCyJtGt6*=_IwZfCcckhGg>soaF*fx_v`Dq zNoB%5k5e-#+83M*aG^Sl)Ih?R)YE-8+`){XVAb{=UWN)Nn>B*z_SZuS04Ggl^;czDL>leTyEvp7=TN zi-(Nh*&XLOrR#f*s{MPts^j}RT4!LDmPCsX$(@7q_me&3>TzN#T!4i{BU z3wXgC$M@*a-?ylpud0bw!JP2zP_k{6eQW*}-=JPp$$C@f18zPTkVHp-->O^@m+v(ey8*uD)k-0f!k5;jzd$RS=;Keedo4+ zr|dmc(MxOxSkIw3k$uwg-C65*%AP}|J;Zvzb{<*+E3~|_?@pC}ce?Vs6Wxc-bd#VH z0`DRDcX5Hv_?^!5ov!dZo%y@-CEr2dg`g)#0|9GWQ@S2%TRlSC>S1jQh_(e(v>u9x zwWu2VR?kJhZE+oX)kOztJ%lA5w6owqgGJ2@+ZlQ$u(o4jb;3mMkbgon(e!PAEBsceJyfct!*i&H^iUYI&_VUz zo;7}})Ep|+5Gw_nc4!o=V3YdWQ<`s2Yrj3AK6FM+f;0%^hsH&LPWr7b?OUDvTV3Y2 z=T+ZAAcr9H(6pF;*V2TW`&OwsRH35enP9tf=D{)(W4dlKv0E^)o0$lNi9p3-Q!j)< z8yuL>bAuBtOHHpXH6fqHCOjp&J(6sLvD;&}@jE_66AY&r&H`JT<{2&lrQg6r)i-ju zJy@h+Xk=LU&H8%FH)|61^)O&-vKeY4-3o%==^ zYAOv8+Yff2sRyiJ-_$p!roTBo^UaB1)0rR%1|S%0>K6sN=r_99H@fj}bQ9m4pZo@b zK?wX!0Wtrs(Qn*i-zWo36#+`_2kXs=fMxcL=)7c~SFjIrO*|I`!aks)x5)~jV4w3F zJ=gqAi?8WbALY~AgfIKuZpJjnwgC%D@m;@cn&V^BoJOpw#Lp1imclaqZ8fmuwh3sx zT@Gx%Z3lX8yMVp7y|=Rz=9@Ixu_3bJX_EC;CCszm)wFN2Elk^8mb`-h1y$g{VnB0W5om|9|zl+qXNsCNx!a>nn|b7 zOfWx3GXbKR02QN+Q(`fyX2K_q?s*my%h%Tkww$*!X@_I3Q4`&rv~ZfE1k zPCB#$Rd6;=ffD+eW&EslT+uS$@R_JGCi}o^S}AWVmD7Qj99X*EI15^6Hma|6>aTU0 zuXWn5&+EU2fJ5!1jSCP6b(eqb&iq=L)>x57$)#XBayV3p)!n1(pt^Smb?;zx2cqsk z#eyR$7Nct7D?K;)Rm-B|)kO#LS#V@2>^E)6`a8a~eTl$T)XcD*p$FLN@G|TL_I-)^ z`@bB(rpFOv7y*ubIr8QD`iU<$B zbjGiArmu8`U!6C91%V%efJ2(7zve5q_A6!3Q4yr%0kG{knP6G{TXpSJ|8}AN?X3Pl z)E}tmcT9@KsG9jw&&__>GT?Z1fb!`_{hc=*$@;ru%`rR>De7S8W!M9hI(!TVfc_Zj zAC3jFsd5Z490N|oVzKr0GcjGF{$-A(m{@dL;JLQy zfeN!@RxC!Aj2Rq`~~Vi z`o$17BL|}lCxA0wOntGwe&LHviTY0+l#2&`))B)5F{Ye5SUPtQ2c9~J>GMG~XyN=< z#&njL&KlF%V(0BK2&N&JIjDy~sDD|^T^>`;9;}$9!G5i}-1%lA``;v6jh$uTD}v69=;t?KfSI)c?b@p$S?>D z-=zBA9KxpUV3gqmaOURJ&Gq$5Hw}sUdk?C_13&BfBEYqOq4XUr_0fU7s6h8YEoh(mH${r93>^%cftn&0Lk~kQFxJq+un#!!Ic%G3 z@MCkbA@n(}&Kn}gGk*D`z8O<$Zno$T;_`?}Hrs%Kt6>ZR;qoc-W{*;JvqcMDOZ)(C;&w0E*tv*<%CR&Bs4{R?h z$CT*rS?vc{?FSOI&rUIY9%w)l86(jMR^cEpc8+z7VL~<54eTH519tBpWEdR7t6%%W zWARG0?$v&tuK(Pp^fwHy@;Bgsefu%#+#iL2Rcf31^K=dPLGXjb4}cHsp9atFY~NFT zZWw5|IzUtaRCxa!DApdX$Ujfd{M^vrP}fgv80^UYMKR$|X`dVV8tVFp8UYpEFa494 zko!Dc`nkc^Q0F5y3U*?DCRpK!OHo5_!_{7*CO}Q^*CY}yMAH|ehMtDH9%84#&h0mf z34fZ88oC?mx`~~e*GvK{ z1P*&hO#V|Ox_T&Ta5mIAiFJT=*+;>$XBk%lQI#qfB z2BM9F(MEsNU~jl;CxHio9{U^wMf61EN^i8$7j5i|ruRn;wuU+zX?mdPvo9tx@kSfF zqm4aLgSDZ~N`gKJ2JLD8cf2O|I--r9Xk%y8U}?B&A;BO7A-fs^;V8|~#@1+~E1KRO zHB>g#RgxwI&5&K6$iyCPbVM7SQA2q{T{#JcAQ-coArRcOMjLHWLs`SsGGfQTj@v86 zsunr@03ObvA=5-dTGcEBSh|49>V)J6@)hB_m$X$SCZ=s>ra{9b0X zQ59`eM-BRht9lZsAut~3gFx_yi#AH5jcL(zdDNh7sMC_h2u;a>!9*qtHyRgjG%npR zXd3D?Bq)KP@<1>ln7z?BccXFshC$tMRZW6Q2y6!;iK9&3Xq>vyIDI31=7vGlP^Th| z4I1Zx(L^S(8;#>P8YgZTG8^hLN#KOQbsz?Ta2CdHG)8Y246)Dr2}(d(g!9mOqtSb#vHM1P&ke);fx3Cp#GsixU`}XUHyYb- zG8&>mvj^&CNi%aGN8#UIhS+GsB^7>C z$IqgJKM@@;D;{% z$F7g5qt{!S_rKb_9}fa2uE(zPn!m^Q@?4*~P7BI-2^KWXU*~-aTG_NHY~Wj=_Tw40 z7CP5{=@@hwDRZ(Oy@Y_g9$r<9|i*S-8KnkZ2WX_5S3O7y0$Gnb(!3{iP;i)nGOIlTTi_>!+mGPp4f!VcdVlNCFK6 z+WpCU6^qy0OV^b8{S|s*wP3x5IUJkat5AveD$oqB^js09e$}`bxEi~PpR>=KVmQli zp5Y>J(ac>VlrvNTr}k+W8i9q^Fi|SMR)WpBeHMmxVCyv}&~vRF*mKQ$4Uu%e59QcK zouw*pO_LS8mL9s+lD7ZVwEbwm(*1b4b;XA=Ik7x@H?C?&9iy1G<+&Jo76lIEyj$zZeZ-U`8aDH?a$X#6oW?oIZy1w3cHAgtBYw&nvpXF-e z6pmf}OZ2KTvacet4~6sXL&)0a0L@0Ju92(m(W}bvzKSrhePH|dxkUEK$knq$SCyfC zr6FSb!4B;6fMs#{$>7yfp{u9ES5E}@oe7d)00RHM9`V@E`meUG4qR0R_LT;R_Jelh z^n+%TXSvQnlV^u8d3LbLGZ2$!prU7=NzA9J{Axs9d9|f?->bcpPtQI)_`1>$gYh-l zDLCofpLKqQYr?!p(TN7I1X zQ8ln|)HsT!xvyk2KBcI#jB2v1qv^KMbo*$Fe&4HlDwY<-@?RN5vGB?%6)W^<;8QHN z&x3zbbe<445RYi z*3aUT$STighVi|1<9kt<*j_xIxe`cv6uA<*g3IZ=5r$EQ;|wQ(Q|4)ga|{=Nmc2_1 z(@><$Pf-}{r)q3E_8J+Qft8<@0qvh!fvul9KSc-K+y1HOQU9l!tbtF{2R}{sf7;T$ z_tkDHmUnNCBDB2{qn8zZ17mxLjb0%(daY+GFUg&BwVyjB4Hz+CCjSHyuz!l@aij-t2I~TS=uYs)%q*;)y6Bl>53{# zzSp^0PN^1=O1gI@k!pT~Ul`#RM=Dn@jmWb&q>>_4+7(`oRB1?+MyaGY&)mo&ToU4- ztL z#o;-i{1fgIG=NW3K=UU?pyiV?pz{+Ou;Y_fV9zI=z=2PEz|bdt;OHk2;KV0U;Or+; zpJXYT0~C6Oa5^`kC4FrB7>6-6Gi+z*Vdw?=KJNK=o5KHb|Hrb_un?HiY}#S*HfYCi zuF-bVXhUE~gKu(MGU~X7&$bUM^|n$yv2w7Pwq(?C4xefsKHWNeLTfvtB|#X_M9BqgToD?IQ~78pjdo(vhw4zmXDP~drF6h^@9!UnFT9EfRc|-m3@4= z{NodmJ!c{$2tW|rvnb}QGkvTp{P?{2V^Bd*p*?A+s1SMdAG?hoE5my#!jv!s)}EsV z%VNWv)=sg(F2n{qiw!`;2B4yUPeeRI)!2|>U{Bou<C{8# zHAA2(L0R_9i#d16huoP%O6#5qDdcf!A*|{Qc#>9Sewg+lnu%G>P|wf=G=B(_DnBg4X25J^=wR3k?D)|2;rjaS z5AzaMP1Fy3C|afYD0iX$y|#$aUY$RegtY7)J*-Pm~+>{hwjA>m9zB~vy^ZK ztTksAEVC-6wUSjb>oyrtR8dbfEQM^qXTY5XueE8 zfZ1=(WT;`N2bwMe$}XFM1LjJGHinMN>+4;Y3lb)E)OTMNO_F|?+gE?Gj}FvBY+@dh5^hlAsd;Z+%$ISvPZ8H+%W~ z++|Q+P~G*TV$NMtm)+Bsl|A(pJ(RE;tR-h0EHi0DYax>?f=L!;5)dW<6|VYr@d#Dk z%ZB#)x^~LL1(SLMJ<0Yo|H14Bn4m@$fxYIm2%(Ch2B?p~7@ygMO`o}hVL8wiu|(F_ zH%GQ5tjetKjEGh(MRE)4PZrYQGErnzeJ?1%s)fke#fZ{WUuq&&1y)@@09LSSHgak% za(X^;!dQRCNCGtkn);xavu-M)n~t2HiGb38($)`&Id@G&+>;TdzP>_F3AJD=bE06G zRUvI9Syd@mRmrRZ!YZI5t-e(}LX{_Ckk{AADUUQ*)fe!=szJ0TJTaZP6uX2#cxejg zHP10zWXQq1v=3law>cA=-DV9#J+QaV#IWQ8JeU7qN5ZgBUGoQ`VKX1(#_CSS>Tu9d z9qwY*b$}8KoBH7F^asjlU1^lqFxW_4H(0^2@efW-d~ka5gA-$QXU0enfncbvPs~|2 z_JJawo63`lgjHVFNr2aFXcAZoouE9m7}ngb#_pKNu!s}j$KkZ>q?!(R)V$EwSpB) zid;H1bm{cSr4x?2GY%41Ah6bX#GG}(OS;gd^WjUNte|XlJz~yX{!8w_C8fQt!cGZo zV9Rp)!7`J4+A=b!Ofad8nFNGMKt)Mip?HL<@=J!Yy1FvTqXZ`T1A|GE#=;|EObW~~ zhLa4ZfwN(lv>2YprpwI1DwkQ#Q1$-$dj0!56DCbt%ib4F8ht;Pt2@cjfu^k(aIIEQ zf=NT~pB;H$xnwO}vVxrfJ8N}<6-)}fe=7X`>B##h7OiI%NiYk+oV8udS?7OW7kK}C z@O@BopysV!G3Ty<_uYf!v7=Nh>aj0)eDSBkx7t!%WmX#&DeBByjpYm^A<1EH<6yMTSxs<}}O0>+3b) z(u7IfR&!W1X(*iQx1RLVfx1!H9&05i!K85bY$U84w3ZGM+XJ@OY6mNr6bPRRhEIpW zCkCu%21w8gfzR41=ByhC>juN;{b5i(P<>X9m~&TO*xesi_FF6ZDPbR2b50LfW>UM> zOeUEHlg!K{AWQ-(I;~pq2vvn)gV$Q;r93)eQaBJwniP3A^e(PB%_9t>499_!@4}?n zcc-ywGtVMynO9VA9}wr~L1o4!n1w#CoQL1V#uZGwyMP=R2knhXsmS_%0ms4h5`|o z6rYt3zSI8>=H})A!!W}k;OILrY5biiHY?4O3}+b50hiuccxQdR{M{!LR*mk~zbjf5 zd^dM`_sQwqINa!N+~MDC1|?YKfA?(QUFFp7(kWucz(#jhf)%XlfA`eDyQc@=Ju$ia z%p?h-5X5%d#hi7$@9KQ-p6`1XR1DPk?p879uI_i;J?|6uADm;_WT z)Gl63m=rQB*48c7B9DdIEX8;rmh5!i3!V#j`fcuE*vD`H=)VAy!WV+r)S8DFjxme@ zr!GufSYJPP;pv1`gSAreaL@K$%pIvcIYNgUgjN1p6{xsX7ti)wR1Vda4iW1I8>rQT zjazl`ROiLh-is$9wPzwE2tW|5HH$gxTo-li7teQG1Qi4os;v}r?rOg1ZoQ}s*H(ln zVF;`?#}1ZRrO|51Dy?9ZmRSXaRX|05?feDND(<3Tptf#+^5}whU}}tsJEl40B#M)qLS}>xC1x+A}s1ltWNis}ZZC zvt7{HFPwK=096UfQfmUma_+KRa9b}Zt+f?aN@xMA$teTN43ld$WSB-UOv4NV!Z4ts zuy#@`d)4gQ26Jtlner%vVbg)BWCwHvZ9&{GH8(SCXXpWXgD}h&?7?Q5xu2n*VKBJ9 zekfR-Fez3u9u!Toznwc*b8@Z*2a45Tz^$1EC75J=`>gG49)0VeS%+#EjA;AO$lQo=J1)ceAUCG<$%iabx32Le)Q?$R!^tQY3ZRK=L#WW?H z0;|r^f@LNxZBUa*YQZEmGYJTjfQqr25wYx5v7jMZQx~N?#%i(@vw@kUNw&8vZ(%mM z!@;nXVLQNS%bO0nv*^{P&*3SQ8Nij zFsU+l))G|q)|B=V+X2>7GYeKQsU&!+EO@#+c%rA~Ob-b>5OmfoiaF~{L0w_+yg3M} z6O^|mO|-vDA9Ndo%I=zqZc69{tIAP>WhTvSP?1S0!6X$k2?&#biq@Klc!a94w+ybD zIv3^93X|pob4imdZMDhSjy^J30A{aZTYTjx!0fl`Cg)NrExU7EMt+P9S2nhGr?)X;HrGQl#FrZ!}f zNtuF4nam_0OadyTH6if`RU>a2(rW6`C=V%2S_~{CO_H8p3SeyBAwN&3W~c=k&%>mW z^M%-)-ciob%Fup(eSQ1+x`atVOV4@Hq_Q`2W0sRK3l0>tV5qh9gAzB2Wpj9Jc%ksu7gkR>AKtkb-y)4q9L|0bv*P$QN_G3PGT zn{M@+%27+jC?y;LE6+(o-I+H?I9-;$#k z+V1R=r8e8J{wq6Wh~2{G`hCZPGjecO{ zjUX^!8ete^IL>eqIQPahkP9pTRe>~|3S&S6EDIC@eLE@{+884 zJr_NjEV$H5J)YLJcHK0@fZCY%1lc|CeczDn`TMglvlsu*1VyVTPozlrh)YuxHsZA zyt$bIQ5uiaBDVU}M$IBKu_c+}X%EFcPe=9bm-iP znd&n$Bp8Qas@e;I@RWY=T)WzTPB~p&I!*Kx=(Lfb^*Ci0#IqE+< z=2vQ~OSQxija%(# z9JQk+2_$xcW0K&+>DV!j?HDIGA&Fb<*0?opjpseLhS4w@M$77X^;oUndyJORfCeA@9+7Y-}!rQ)xENB!-n5Izz5tiY!Kc& z46fN=__45T5Oy{Qn+=Gu0ddK~(;EY(ZM9dHOY5#|+)#g|VngE66 zrVCGVd*b{Nd~1?3(x=!vf7$pYx0=7~AU^oy0gDe?+)G^cbic(XiHE+#w?@AlCRy?H zRf}&BPkcG{W&HcMzwGAjyk}oODw~6;XIb-p> z#f!wfZOayizF=+p1!f#*TSs!BZ6k5b7Zt>fU(|gO|9;08KP)P!b!NQPcKwU28SB3M zy8g@Powk-cZK!gqjd84P9I!KE&6h9Mei>bEYgra_3h3>&sQ}tk@#Tf;FQZFs4NHRF z20Gm~1Js#u!*2)EWEy=!xOc z(<7sOt!-ypg-{DZUE6_x{Mf0{7l%fp&225sg4O}8Z|ec-Jo@Blva#)Gqd@h5maF;! zSqtoYY*{U^>{?*iT7Z}qATHU|wkhDzRy$f*(bicZ9-A=T`SU}VZou6z>HX~RXSm{% z{T83Jc!;?9$zhAHSbUB6#%GwWw{?tUZ|fxS^k-9_@m-P6ey^xt%&k<$TGxFZ_|U-T z;j+QcSJt2Wyl=Mk$iuU(NFQru=x(h5$JwU$^AkrtKi&U%-%RV-86k{=aI3Wr1b?bO z{Q1{CpGT)#Tc!oR1$e5p6|n0B2S0!D(C5+Htu40&odUX4wGXJ-r}eQV*=NbwXUXhC zjD3hpuC^|G=BwHk{(QM~_2AI4Cv{M;?8!{(9t5r)Ah z_gK8o;seChPad+k*W!NS^ScKv9wHtd(FnSGl;r5{Ys6zCH%8*$zcuos?9!&Xb>VWh zz6U@1`p{?5j@FhADN#+0YFh6AcJijjauh0@njx zsHz2Q)~tJMLDpPw)?6@a5@Su`lCj-WBR-$Dxy$pV^Ov8mXuVt^K4ZIiAa?gGVAG>* z`m#53*_*vwxv8~tlMp6AxV3vZi*W0*H+9*&eYtXDYv)EG+ydeD?l4wx9L6tu6PLZo z%at2iJ2wd7_HO#_s zC+ITJJG=J>(59=GFI>AEUEA8QR?s^@S9Tu?^k^End}8$S=_{A}R=1vAErb;iLaj#v z*)N>GyjVJXIT~(l2n!s-qKj200h>i@9$S<}7o9~H&7#Cul(=MJ_ojePTP+r?yZrp( z?#qk2;j^%t+f(O9bHm?;PuG2lBYwJxc;l0`7B^blO1xorhsFDe4}PjX{OMtm)w}yG zK1n?M>CmVAzWk@pXNSK%yT?DxI%Vz1*L5S&p4}}y62FI9cI=)4?3}WCmSO>%Ts z9dYX?jl}yt>G&l6{X?Jpeo?_Grt(K{*j)pkWDU6b)34Wl8eQ4dva$;$Ztr3`-gPPm z4t@G{_|xc}T`hM6o(4R#YXq>f@10LxT=^urysKqd&>5h!yRHS$rln6VEPoPR+SRZm z=q%8=T{nR``_6xIV&Rk1i=Xr@?mD|DggFrAcTIxe>^t{Ka$(oe1%c*8TQv>H>>GY; zPWGL1_MJ2P5@TQDl8If110HStpHxon>YNmhiCx_9I)5Get}wk|-;v?-!yL)9T(S5% zarnub7Ef4wi+J^}+ZN9f&ktkYvR#WL%XZyS@ud(AvEkCXOFWi)>4j_`Z{4-$Qr5nc zm%hGrDcZBErAJD%QjtBo_5*eX9KZD9#HHxrT`h+N-2=2^*Wm!#bo0`Mu}jfIyBZD& z+5vR$t|LI50k2&;asATi8<+YH?mBx=2zx=;zw2Zm`-Ll)7E7;QiXPb2a6sVwfM=_Q z0hnZu^B4JM-^HI~`}jml*>Ki` zr-r{C8jjAlw9L04exikQ%a#hj&V+-*FP*Ihtc81I=f`uV+w*br$K06ycrWqt69+Bs zvG@q_x|RWpPZ6L07}H((c!cDpmTMN@B%b_u{9_L7KYlT5x;-t6A7@Q>@Z#5pE=GG= zT6!dY4^`-BSpn=!xBudc2QEerx3nAt zb@pk!cw*1R(;XN44z`>~E<6!CAifV)8)C(E|eQ2Q*z(2gpn}{phqzH|Wr zbb;BVd9}r5#2YVQx|$0WBzv3dEN&*=dtuK79@x6@(`?5bZ@zIMYr6W6zi#|Ey4>8d z+>H3~W(Jn#3Bb;DwI9D&_i=Qoxn)Vv37}KWw*zQX^~V=#K8`LnH!KP|1$3r)9;h?j z#*a^I`uKFk$9)UUXBUJp1HxSMav=MKvX6&D8$OQCH#f`+JO}u8)oQF_=9_%=~3DJ?tH>)h~sGYxPTE z?qTn;^J~vPvZ~_z#`Bv?4nHybQNZZ1opc_ylTPz;RBVaYa$*S7`tr2fNI;lpS zbd5M^jYv!*5|=FP+ytWin(<<&?p)>a&d%kXFj?BUxnynaH7w1q1Fu^D$f~tw>9uC* zt@fb()sIF$;wkWtt`kpwG)_GI(bPxWB|I~I#vR*olDqMvb(pN?qgNO;*d9HyepT&9 z%{A*+)qm7V-2BmjC)Tgp^U>j*`25bjSlWGGtn}1JJ<*|$V&^}K4Sy6J`3Qw3K)JQ^ z5GbbXRO!i&l2bc>GbLqjiM*;GnALdn(FxUf!qs@fYD`RxC#tw7cV-s#rceg;_MB}z z8~^_Pvwb{vK}m{MJS+7Mot1jMXM4`BUo~*HpZMfisXBaii1gL7qr^AQUO&s1F?Wui zm0V7>CQFyk_C)WTjjf!Gg+7XfKZ>pXD7se4kD}n!owq?W8D8F!K9_9O;^4Eq&hqyyH^cqJelsvY6)%cK*;wt_Sl!uZ{aJMB1*?B&DA04f zbko`7z|P+cNY8#?V^w8=oxPbI^(-?z zH=3T+Llx**H&jd9I@CDCer#t)py$oflS4hxQ$w+#q1gGM*zizvWC&gA(PhuhgJ79G zZDpSejqb!PHRY01r=8?YPO=xMK9 z_OrD=A;u{~HC!Y9ljQG}vdimA#hZRq--PwAgK2)zW>^tJW)=3F_Uku{(E8l(mrYhh={_A9v$b$J{+&+6@Ro`%x zdzqmUSuj7J+Gj7U>f;rQ*S^CLP^8q!GQCTyuk{Syp49uQ`VR9h8V4nH3g~0uKJVXn zyi%#p-dNSw@4u2t3HLghK3+$|uW9%3E<+e(-^Hbrdly%qy^HI~tvTcIvYI}x!5MEg z-DMo(ot5zp+{bwCZ8LrLwwZ4lFCY31K&_3Y4uZBRQOkoAO3x_%2!jqc1H!}k6C%$hc)Z#1y~DU z-H!S!pytE6^|b=51F&&N2Y`eqj)W>cTzR-!kc~hpb{qs^UrRa?+N9D7N^5o;$uipT zVXL=MfEobJJ5B+x_3K})`|#_s52K4aS{8QzZ3en$$0$&z@ahl0UMs3Sl<(bfgK}Sd z=)=bKVL|o+Ik00gE9lPY;n2!y00#i{?3l@sES;{2Eep~EWMId9mSo{{>-t3j1^}Gg zaVJMI2g$r3CxM*b5k4L0HFMgVRrz_!M|PA^?pJy(b|Xv|_yoc1PFK1TV(j*cAmxJoA|y|rV1u5?VLwaXHz{7VNs*X= zoVesv(=8?(I}e>&H}^sD{0EhDO@BGp1fNsPN25*ifE#p=WaYclAB>jHe9-F6eh^+i z+q9MsSfgNFZ3^MF)|gjIr#`s8?)C>jt^&E||$t)Kkhdg(1et^>K*R13t`yH`sm zKB$~&+PHp33~vG)Z|VuiD%OudHZHPpAd^j}fcO*SjSr@xH$QlOx@lu*TBMU8Of`+< z5Uzo6{e$OkgK%32Q%$8M<2_@{+w;%Zox!O$C*R}|gzeK7&k--Zxj;O({f@=qAa z&b+oTuSD<8z)#d8PaW{GRv2 zHQoz5y?yWRecyY5H!d`-uHm<=*YlI*)lH`QBhQwtrO1mjbQQK2kVY6U#u)P{C*Pki z%BlB_GL<$Q-e9q|#^@h=wrri~6ONwrV@5yf(_ef4s?p!b(Srm1I!FKbvt@TO&{sNo z((EmfKj_mBy?@H+hjaAcK;Qqq$>01;0d-A!CEx4vmNUGxX?67v3YIg4tJWvN%Ng%Z zL~XGzxvx<_y6||xKDMX4%_dp`EF1L3cnQ&1db^$#ftEcWJ7{BDKbDmIteJBY3& z5rakaBjEc7_o--2Y3D=psVBWciprW6PExdr_dAri>aU#i%G)29PkAMeuL<8IqiT$w zT-~Hq0dRPz~*Fo0ca_6KN6T> zZ_*5sP|6JQ_%j8_uk;>!rt_f{->xeuFZR8X@TrsDk?-i`Mxh$|?<(&pesI2qpW@g^ z>xOEERhR9&dThjm^K0@o=+Dp8UpYCML5ZC$JH2ZsU5hMarczX8cN;$i;;O=1P8M8M z+Mg*v-ZNhLcD^*2#4G4hCwq|RXNxK2r#?0yv?F-{p$|4a)v&!JeDI|AbC1_XbR@mk zye3|lmf<%)Rw9K(^O+v7iuhsol5p=yZ{$IYAD+*6p@;OghjmT;g0??HE39*^FnH2? zw*7$>UdeXnJ@KS=C&T(B5qxCb$<-${E^Rounv%kD-U7GBDQTBta+@;VT9n(9tdMe# zKNe5$9u{A@JyPy*JSD?RVb*~)m#LHZ%}J!y2g=Q5ys|RA32tpuv!LJ0pxj!g+@6!( z)~t(6zUN$I>b;fCYUkOUi_B(SWH##}t$8jo>yysE=X=+CSr-A#xd;hdq&4dztyvcd zHTf>G?7PUabCHqvd>6Ts3S8t)iZ|S>rmA;RSKsqpmPdW2*b`!&$7i_Dl*Fo=uxo|$@5x1$X|&b8i>!MuaFI>#ZFo;E zQvF`mMH-!wb}9B6lc!Q%m|>zZd6FT`cab_@xklebZfAHi!D_H>XPPD6T%$W+!vrm`+lpXVZrKI!ti z&bwCL&AJF^&P7PzBK27psn5E|Qlsx8i@u92Iu{vz*LRVntcxtAc-_JsT5BnF?OoqR zuA6Y);^Vu>#JgD+x%IAdky|+zA?drwt*nb6&$&pQv;N_Cm(4{i%NvxE{V8u5p>@e# zg!(RW{2&*3k;%nL)6ei=2Gdcad>As*NId8ixcm7rEnFVfbCS$RaMX z)_5}BzZ`ZWO8Wm88bCE!~v5dD=Di>L7>=4vkWYKq#cjY29kz8cvgmaO(6LU;*yw@t{A~&-xax?29 zHF++wn?o@-N^6;lR2<%WX8a978*a{H{XqnH*Xf2Z=4j= zEHv*dG<8B2LPJ?-pI^-bC#KCp*K-!Sp0&{Rtc5D_EY#zZ9`TJka3b4@Kywx%frTov z7OKcvXg07=$hXkytcBM37TS=r&?aXgyYRY{ByVZCP2D#oD{>a9_ARu@x6rlBOszK! z*0oGs)j5lQ#nra*q)O={l zS!iNVK6Ja0$9l2Sy2d^1d}d?bnSoH@)@#ShV%Lwe^%?bt$5D2ZEO(dRaf92a8{Af% z;YD=LfM=DmHQKpn3c$W#d!XUW+&fyd4*NTmGdsOuw^Lbs$2-^lz$gpVvEw(7dp$63 z^w-jjjeE3V(pq}z_^sn!FKg-PM`K}RP4b~@XegK4>+7-q9XCAL$(EgC&-4b857a;AIjQ-AfFDYgGKK)+7wUl?66V}d$Zc!(-{yM)d)$eS0hXyL9 zHEZA5$l(L)$#?2iw1zglzyiF11nDXla*sJ>_o-ucr!Q zYznWZ{7qp;W}m+)?8taAS~9~cO?frqK=pt(h(-r}XFJ$fKY;i+?@w+V@J^Ppe=gcL z&}wD0_<;cy;cQqB4;+FWgL{I)3*l?j{b1(STL?RMmN##{<#P`^?icYppL@mIy^`|jCH7Mp z?|P|+nC7=@@QI?&FQ4HnB5!*)N<9*Lorb&;GPD0}?X2YB{j?-Jk@7}My_fir$F~j}e&3q# zB+jk(3r?n32=2jkCQ}vL!GGhZ!6F_naoZm(|Mq7FMEBP5lJI_8^u5Kn@YbO5I#Cin zknygR>PX{2=Df;Yy^RsYTTlRz@#*hgISx*3V`<4`&jd$s|Bidj+%tQ#hLg7DHyerf zzPaa3j%K&-f73r1TntUTSvk4==65HzLwbHY2a4N!0NRgT{ms~$Yh&YYK0mR2V`xI~ z>%hmhk7VIDfZu%c`ElUmf{$%4Et%@Mg=p^hmGFG;v1`YkS~YQO>=-xRw%_6`KFJLX zj$7VbI;Oi_6>oa0_$~hJPpw)wHgl}BWV+`zv^C%7b|H^~)K9*w_%`v}%QG)OvTEVw z>RL`r>z7_GDi~Sq6~~JHX0X4qX8U-wW;@g4fZsC)c&qpt-W<67$}#qWbc93O&HIa= zDFC#_JNloBy(|5T_1-{)F{%GrzkUN$hcY+&m+QSj3Mcx zGP8r(?%rUI+syXQ2rs4=UoP~|_j}bmKC#sAos5Xx1`Q^9*ZYRdiqIZWs}H8u>R@dZ zi-wGjwlGGf+1?7?x}C8^uX=CYzV?{?x~R9A*Vm>tWxN_>4W`x|!(CDw5e%lhg@~8x zE(#?NS9&+Mc;92tO)`4af)`3|08cNl3+e2P7m{ROU(jz-h&?O~<@C^sG7N zor-wWuv#6z9@6SeJ%~k3-cCF=t7oc_F)p==g^p!sEN4!^8mH!cY zl1xY)zVH}7uaG%d;r&IlVC0zhR{H}3?3!w~pK|WPJI`yk`_O*xLEf2L&)I$bTAtS^ zTkrj1Dpd403r8zQwv9(ew(%pkOGg)vdgmYJuxp!ht!vwyYdy#k|MhjR(-y^g>ub&H zdm6kUw5@-=PKB$~YR#|jZSclXL_0vJhGUvB3UjOnBe#Mcj&I^CV#Lz!XSz+|o=?7q`wM7l@mp=IV{@1+` zOjcWU_;s)GJ4(z|+v}05=m4V+(;8L1ufuHf($$^5J4{xfU0E^r+da9cQz4oXy%%*x0cyYsWg-vGNC^ zyV8J3b{gYfY{e)0@yP@OQh%8Z92>XOr8d%~Hg0dm4dtuuw#`cGl`YLwhGnCd>&C@=5&FG;N8`UXX=#Umh35NF6 zqMEMj2fXDXweq@+&sE_!s9xs}yViv3)v4PtRn@gx-a*LQ%&WAAMalZA4R4_2@BOIL z`>~JrV=1)p4UI92+t}{SB6@LKHE0k1{tMnuF#H>V+I5B%)^=|WtZ=4TSU-Kqd!-~C z=CC2+z0zH@RE^n&w|KA7)2myzdGlZ{RqsJL?+s3?s$upMm2^mv<451{cC&$5wN+W5 zBNA}-+-dI}P86&9-|&_nW)gYByUw`ExpL*O#)M0P4ZY#rf!mz(x#;h+l%9rE2g}w9!beE0sFD|03vKI@BdQ&TJ zaKB*HFL_IEYN^3nji2_W!uV<7ul|5Hs%imtk+-d;?lgF7fgMSe3HC?7E)i^9srN^m z*z*S3QtwwS;XBMQ-|_yJAn}_Ys^sdH!aw;_-uPO*VVk!B4tJ_Is`MeaPp0DoP|M89!vFBZ@=}17eay6+i$B~e)WgH_Wr2-0mOz^YqG>NqF53l_k^ zWb=mibM7ZIolMo2F`bM*?sfiY@od??-uV9B*n!^4iiY{JiUuZ?!@UQ4y-DWF!QL8f zD|3vyGQo(bnPF4q#&Xlv^?nuE@W#R9(B_FExZ8#+xvMZd*+Hfjs!>Ozdg^dlX zvo@@j4WD{XbT;X<8RJg2iwk{oecn=(ajOqAF`cdS-KbTMWt5%WLJ{sVyM-BMS(V?i z`c=BY4_Vv+EB1cK$>OUw<&8i1JUd9 zps(;!?pMcaIUIbAW4Tu+(Ahi6q~)u;xP^1^FgplNp=<}~mzUr-J zg*DSK{i^(NrlIhI_d6fD8^V;CEzQ2+>(G(uhfE=uMMpZar(e{cEnp7>Mq)w!d(t- z@ybH@?h)rNdsF@@U~lTq5&UIiXhW!I69{`XNN)<^-ABx4s!8rknbXvSy1acs4fmxA zYeRLRM0lUou`a~^KgE(^h)V8Htv!k!^`XYl;|2RuUM+mNFujskr`DjN8;)8UikHY?DDFEx>TnM|L#8}!qrw2w#GFn)+)X5 zsY%s}&wu_ej~CRWyuV}pqgtTffg{#||J#~ytuMPab@+%k08MSGM>OG3h|2a#`tydx z#t&20Iq_>l>o8_rpg>)!u#5&sgzHR&4H&aN#cF2|e)XwA@#E!I7_*)U9=2S#WdXaB zP7gKG$dREVIL_bKklydiS8GYLUmfXk=Db`kN(IJ#tdKDdX9tLbY;+qrV4-khukkrc@+0?P8I(A&l2I))(C&r5nd0BN0yj~ zXo2NQ{xm50^Cwj@8CmlefB7%|<^TGxSd&+jG19SauVB^HjBO58486wU{NMa<|C({O z+N=AH_iysCSVna`{JWrEea+jnI#O_`qVTW(Ejz~w@4&;}zZLnI$p6p3`oA6r=AE(l z=X@vWHMiDTd~FtZ;r9P$r+2GXq9X;jY776}gUY&n`JLCizu|WL77g9$2bk|P!BY-J3q_8L6zLBF8V3NqX@sxC}p*Xe54 z4i&xL_u3zr*utz>e*l$>S9yg+z~}27yyq2f4d2PDFD;qvnc+}SKVp;O8)H3lJ&&wf z>d`^q^{4ItSnqj7-rr5UtmDb2_`cdxYhUu8)BU@#mk*SV3os2}?x_v{4*RAG=O|ow zYJaxyh6)!bTz=|Mw(zQqkS_erPxVV8 z3%{eYQDUATB?fU2MBb&czNJu@vm3#FuxR0TZdJRd@-1bL<%`rSia=cWAP-;z*qlY# z?4H~=lr@GDDHh69mJ6vI7rq++ms0MbdncC~US z->Oy)W=yls@lWbb>FRi*{cztqdr`^%JXVd z-#zu?&;#!&F8NmqC7*oo;}F+p{`uE?*F5vje|PWqo~rq0HUI2|pS=3OsvBNxRpEnc zN=ny1^4Q~>!=Y7P+Uv?}ZD?v~Ywzspe(p!lzwqKqeMgVIb>jWgXD?j3{Ke0I`Kw?5 z@o)b0&;RmY{;PlezZX9KSAYF~|G$6pw{2hl-GBbCe;*F54V8s>uVbht^x%)`STD4O zIzszG2SSHJJ)t9^fzZj&P-r+b8oC;~9=aJC4^4)qLerty(0phyv>aLqg}t?2nYYp7 zja6Qq*XXr+9o|0gfOp92@tBXjlirXw?2UR?z2XP2dpEstZ_-;+eke2rWZIhrb0{2xHv zHPX_##`_7sHU~kHzaStp6OmR|94Pr5A08Y8C38kXtq);%Ts}UJ9iv;<$AOx#} z)hurKF$$8TlJQI=QC{gNmzNjE zOoEt+cPyTuA<7f+wDPczB$Ba2gj_71EH4*FGgxH;>%|kXWJc|lPDYamh@{Kok&JLb z%SdJ-p2QBxqtqN$nG9B;Wn;-?5)=>>q-L=y;w)*N0x@=qC8#BYR5wkXWGJbReG)Nr zP0M+ZpO8i}6&cl2`eQp$RwgRJazMF95Tp#XN+gnISDYaolX`vt9HA<*7RpAbVr8Y8 zyqr)BR;8pNBdW4QG#-f)l1ctmO)!;@m-82o2klmlzLoHd$6XDD447(Cc~X)1(S)e5 zl+lqak6TH+oc554cvo?nR*L(53Q_Qkq|iF9OhRj3APy5BjKH&hev@1??rOpKPj5N(Fmo;2#TN)lv zERQw#Fwuxax%`tN(_RI9%25bNqMY$B#yBf#WM(6mw-Q$_ zF0hC*V8&xdrJ?_aR#F232{fT9P+63j-X(LfT-nSWu&g1S$Yj!n$Vx+#L{5|zHOxOY*g^yApkDqu z1MSk(%T-YepkyUW1+~5_@=f3_^3`|-Kqa+w(|m*q@Xx|7S!s?32RfhWXGAcRw$5Hw z>^i#}?FCY;vw`mJW*#nZl@ip36?K&Pu96iJ3n)}0Vcuv^5M(RyvOk>L_=znR@+(4) zUS%O|Nmq{Us(xCO3g!X%8VTw^iXl?JQP9Na)F;*)=*lQGt;CEzfyEq|^fNwgrA47D z5gApgOvlo~q^XTu10#!GVYz@n4cM&Lm1oE@#;(HFC_?lrXf*1Ori(lPi}(#G8&k{ma46pNL!uO+ljHUmJL-r7>Es%7x%tiWI~2%Xu3tGH^^&lr1U zql|3=n6@Mov;ag=)!Q|qpw?3IJ0Z9#ky6zayU0P6kz=@_!*Y3%Ivjk7m~`^WUD7yx zqm%;GT(eYG7G;heq4%TG`pI8bXZfYA+C*|6CKmnkNm{uNv}uoC9aBRj%wldPwCRW< z{#|o9YsTYR&F5)gCUXO^sm(Y8ejwRIDkIU~2vkV|XqImTR|#9IYJgFX$qP}cs}g(w zY7#d6kh36={gVTh7NHU{s;;hamH1}JWE;sag<$kntPKnu%+=O1-(V2 z2@j8PgL;7Hiwt-eifQhvAK?A>Tp5${_&Rq-o>ufOST+5$b9~v$73h*j52GxZPhl5- z`lag{of^Z0GK$*xt&C%71Ax&8$Co0YtvN(^PjF(=TmmmoONSt1VC6~BJZaZxjwlz4 zT)~ugifDvq408~XrLzu@hwGBWjwr}V@4%=*7Z8%cT^yj^b-kxxdHbV!@&pe=K%Os>oJ$!Qg=}r`FO2D=-Y}5>2Z#KbVEmtZmZbP3L7dpwxd?fLaor z+;8QeP2oRD1UlZ28Omx8Z_>;H_r-FQtoXH*%Wh^!StI0;*zWdza{V2WbtA zQszbeLW{DjuL(Vyk*8@7gqm)(D`_#b%q~i@wb6Q$r5js83(B}45?jIe9Zz|7{@gxL zkRpV%#X;m3x-2asH7&rAb-s+|%4Dsa6iR({B+60y@jcnQU{JY#h)nl;i0#0~wV%L?+4KwUUrIg*va8RkB!vwQhB!M$nN7K&cZk>c4&*-R5YHQpLW@LY|a8>~-m@&^q zxhBe$1#6Qu)n|Se36b1T?DGP77kpYW_=(Oyo%cCm_lh)jKA{^#$mFC8Odb6_uRr(- zog*tWV3X>`skWo;wX{Z&f9pQ|}-xy3;Qt*Y&UGL>1`6w`Ks*|aJt z>?DLE0yI?xly`vvn41T>H^rHwv?OTP&N&tXuMrrbof%j?%B7+<2$hxE9$4V~TzV^# zcsCzPq=I8An+Gaux=`8>d?NuxV0OhqmhLYa7qX|+E_<(gT3#TdAkvYJvM7PyN)(Fu zn)nw(PRmxBS)3@vrh}?#>^K>*D+r=fsQ|&pQp)(6=T$&6UAA&UA&5inqGS+!1ZDG* z4hj`~ZQ}F`+=W;j&-$)ZGyT#^s8D+QtY}i(o#Z$NsdS~=7x+^v=NGDhgZgJdRshRv zU94R|Nvrouv8*=IKp|Uz64KE2T3Avl-4#^gD4?OK{ATdCHaS%s5sdR#tIVjxHLaY_ zK8qDpN-%|h*r;5Q#JiM)-7lb?zkUHK$}F{X4=9vy;*FmxzkgDAg8L*~3|m*1uvj_2 zK0bm(`JlX{wR5gGUngPZ=bdAy#nJ-#!OS1&>r++(R8W5J)$jG{=lN9kNk6n^FSC z={!`DtVVJLzV>%FcMj|;oD-O5upE|Bs(FU7!UY}IJB@Q!YfH=eNJgb7n-9pd1xmQV z_pTzFHJxrbV%OyPcv)CBkq^B)Eo~|B)ivF59h(j_It2k}ZRRRqI>~mT!lCTnopNjB z&Udl9#rV1VR}`SNNBWyI*)>(3weH0-+WS@&NYJT#B0Iw87(W;8<@OKebD3gqGwl3T?xTv3EecxP}roq6^tt40*1DD-}d1#B5N4i&{pyolW##ias(Nh z5sS6p<`Z1<1~2WOWOO~DBq1b~*OeO_{?-cZAkm_eVylr9XGv;VJ)e_g@K3OrrDarX zc2fchLldfa+LE6;-oe9C?%|#^PaWwd7iUt|3<=so%3>tl+|!a6H&9s`Br0ZgmTknd z*kZbgCLsQ$8%h!@&?m92SrQZm4Y&EyZr6pt0?u;s@3apw_AX75=Cb_?9E~|n0E|VE zV`YlL6G_g@Mrf*_BbEWAB0pk>ND|#tVt+33)tBZZ)ern^!hdVd{Y!-GT>U^|;4l(qUny&I`T?ur4s^|Qb=gtD|=&E7a>1-W>hu-K0PE#I8 za~;VPAVRVlS$e6vuplF1Z3l%0CgvpHCg#6M1`#lW-MH#+?FTuwmkOv4fw#P-I9gt; zp`y50Ti|GnOO!khtwduj?0?yaYZqKjVGFn5q8bHN9F4^RljMn0ZI+>Ocx=xB+SyN1 zn79jM!Yo!c%BTuc6}iyjZUS0H5|9V1CDYC$D(ya&F6D^f_9X~+?af8N2az;vEShml z^JA(JYj3B8qAlg+(Ms+~`bb$744bZeIF5lJ3ch%ENajEmx2xW(A(bWt2x?cHV?Ye8R2lZ$y2)Z%&S1S+a>1_vV#>=)g0F@zkt zbijCB@o2ZyM>90SgRvhp-%(@o_|fMVr8>ZBE7?W$*cTNf0aYWDbZ z_QB?OQ|vkUU1xbqS39lk)ai^z%i9?Y%DdV-Q308FR2$C?m$$V+;)i5;C*qM)UbyLT z^CCQnXM5xH5IPPSwWb~xA(f1!nW&xB%*KpO0w6IS{X-F|zmcw_XGsP}Xx2;VcTMVm z@=~yIk~y zE=g%|GA6PORsyloh6wa!@MS?oQ8I}_X)UQBlM0nA4=6&glR_yWp0Nu;O#e7W(BmZ{ zLjhDV*|4pYcolC|UEsnae2`#8J$;6AZ8brTw;DOd(?MG$nd%8qkLao{Q5GX8See1` zs1;RLL+F74*^iLqV>LhpJ=9idJfj(F7&V=cWGG7rpEf}uNr9UTh5=0`DIr^M*qqvk zIf#TP?Wsm)o|N&UEW=>IM@2FDgY_C7q`(1;#A@Jka%`QhPJ&YaFUe3@Xr+VMoU2)0 zoTU>SsF%R8M5i06;bSUEx{%04shVp0A}(G;76Uk*sD_^6%!f8oPtoHz(2`OglO<7D zDB_nN0BPWWFR1Pct_ZMb+PA87GB*-snuiSyJtN34Y86tH zR_gqi$Fkug4NMWTESss8s1O7`J1x123wre583-RVn9Q(?EI)#Gt zRF5FYA{JP^!YRm6A09*sKpcys1NG5hpbAk1^Sfkxt7R#r9WlKcM%9qoAmj4UnEIC* zfyI$JEh{=k7>(Z&$bbTx{;(EgG^VsbT0*LsG-x#vy2@I!YW(n(jb_rMGMPYgnw+*X zT54zBO50GBUpa9`e8!c@kD0I4x`cQG5yOB`EI306qO3YzHW)@0o-J0wb@W)m6!TeA z%;QNKCKRxaS(3#F_EE6T#OlP%jJKLY&}jk5;`D0##nKx7%yTgW-;ba-F?g{}kRMq< zd9E}Wv8;|0=vpqGlC9p%5Mz~ereV+{N6c`-;EW9*5m|=w6ZHkFtQ?Uh)`Aa9RN|cG zL%_6+6D4gUWpyhrV@*sKVyM$VE=RR4nX{slJEfuU5svP=9EAMJelO!&>?~@A+B;kkcMVp8>87SAJ%8Iei zS+$9(g`u&J;Qy!~mgac>5H|kI!;NsqaqY&{w-dNli|Sh+StM1)G7hMu=^o!o)B9+C zWrWGi9vARSc`TiZpoogfMd_=>#pSUKT{)4#We_Fb#Z>Ctxa@sHlw$-NBfz0igCO+a z*&YN7gjX>tY6MrO#k}QdiWx7GICyz96D!6Iiz_ux@ys<6(SojmQW-lG#&g(f&_$da z1`>Tc$l6K#{h+7axtX=KoUbz>jC)-0k2e6t%2W$aG)zgMqq0@ey+%DiOZTurJRyCe zk)j)kF1EQ_XsFGRKBYV zigpgTl8G*qZtse3jdp3I?$oFeiFS5Iqg`8@C~I$#>Vz(fWpI>CcSn(@?<5eq)7{+dDfuyU@Kojz)1R*p+Ca((!f+n4+t* zJ<7<~ zJC4QUo!wiZiBiL^M0-Lek7MZ0PKX&uP$t^l-QCraq}mt^cG0fR?s#{1JLz~rl})GH zyP{oUjzM9f06hjm;W#Zv6}uorX>mYf1cE7@ySv*OAXB@wql<|(QX-T~gN+1gr4()0 zi86e!GfMG1OcFK{ip5ZmYRPTdX=*GeVIZpl(98VPFV>xGm*hkzT4QYJ+B&;Cqpkr^ zfRaQfqPe8e9hEz~yHK7#0;CFY43HOS`R-2Y-_=g_yOQV{@4_#-@$Pm>mQlo!3dg(B zW+1$_UGA!iw{j*9rOwro#hRkJ3hr0rdc7z};Yl5`2IuJ%&Ks))QaLx&v7x+@wc zyApgGxsy&JThba^QH5lCdlNpQ#w4O!bwMG!q@$f`S5?v~h^tXGf<;QWfPN(OA+ie! zBUtuPpt`O-OcO$E^p?okd~+tjQCT+l`>zn&7UKrN(PTK&TEiqN~eGtD?i zP|xgQN8Hu9)ljHrS7Iy1#+RJA@c=wG-ib-KzC{~Qc?{kzs5!VS78y zoW=aibA?1=YYW2y&Flx%-fFhOHQSJjy8)rr?VO;~ zyzs;vu!gfWQdg6#FPoT0nT}An`pLyHRTS%)>UcqC61%7>`d~#VPutocU^cNH?zC~$ zrKQZTsessGD`EoQJ&{T2{T5^xMtJ?F(=BPv8#|+BH(Ila{+Gm#a<+zsA9Z!@2Wn>eibSW!G#3EZ|(5NZaZcYjk z-JreO1{m0?H#*kzNTunAR^&heX9JVA$a29ADDCOzo_`*fLLf~Wl{Ng425j-{Y;VzG zfx%E8yiX|B6D{FV(wQu_k2BfhZRTix?A$_C#L|3)NTIWZgNl|W*%j;RyHQQuE$Pbk zyUwAtT+&WSe&pXWvdU3Nf&RorX~VTE;#^=wC!P@+K#0)$zFnMlceBmZ?=*EQ^aJs=Ry%=9;h{@ zb4AG}#lgL9J(!NH_$gp*3QyIIR_3Bpe^)2C(#-N*YcR?sM~K`B^m9Rx00gUMhQ`FG zSc*yq0Ym#qyU!(Sm>9DiDNqrlU5EwJQp4SCa7E@LLbs2PN1;@7-_2w-ZpFe;c@(2E z$)$Y~ZnCJ5b!)4VW4njXt^B0?jpnqFf{m6nur81w3mmqm{bUTsRCTFE2FIh+z7Pvn+S$Ir&9K0ab?8Pa+f^!!H2u5N6^$39 zO$GmI7ez9i+)C!MG23p|bHh}_vj#U^)99(eilF`vC%J({I8w@Wf}`Vn=>#jkX3{zc zK+HrugiFFTtq9eC67Ot5v!asuimz`lGV3rwK}utI=iw+LbqMrGT?o)gQl4mK?+T_o zCD`tpf%}{8xd!S_I}vj+HnN z3aBy7m&VM9ASi{s>3ou=Kk}5*AH-HDE@%W+f4;66$e-KcO#8iwhHi45gbqMO>%f-5?86Q32gDdNsXiQJ~V5w+jhWEwW3ur+V`^oxhYccnWWxQKw+hqhrG)93R?3DOOYn#af9OD& zy0o6du|HQ}>1>%nDbfQt!beGUVPZvENvfrkHJPwTOD#Q)qDN+IppQ1%D zG>&q*AE3CV_mMR0iJS1O?iQN{uE=bU99d6Xt;Uul5@)DvliEnI-f!f9X)t0$HT4>p4@Qm0LLZGpguzN@#0G1BG&S=I}5D0vweKGQ{9CA)J zDRpR9;Rutzx}(W<5ix&J^)grrL~sP?<}4sLX0hrrHXvB!=kJmw*Efy~@WCkI?4u^q zkgHO)r&T477D_jssi`$JS))@ab06u24exO^BQbU&5QQ8{B!v4AP%~eOtYAN>z&W%| z>ZrI;Ng)wC9mQQ3WHb)Qe7TCT z^#K)LtQD|?jT>lcNv@W}3o(v9h5&~&_j*hQ`XiI>V45;nS!M4PD}fehG}V~;s9R8! zMiQc#L;3288SF0FoC#!mtJ7U@WyD)t;o~n-v9|i49(VGG8gw^0nt_{OeuJ0-GNXMz zz-eU0QFND>dwt0l>ng2DUMaIcj!ZVrR$DMsR7Kg1$=;a2CQChq@a;A;ruY(rif>xD zz$z<-)V;%bB5~B+2FfDkC0w8ShvI-BFu&B0O{6wWo!v}<_YD-^8uw#?jm%O$>@HH7 z*qJdq^b0K?=N|HJz!=tZZIDkWbKR|$8pp|jg5@avnh`lieLul@dWqa2`!P4Y@~HD= zJEe29`7n82AMUP@nwb8WS0mZuZVtL(A5e3>3+!qYuvXWM z+6=4#Up{1xr13zLvog>tCUR-+29OJa(yZzfv>MKn8YFE|8D!km5$BkQwMHE+J(G&` zM1fjf5i^3iq#sNV=_RG? %sP$O1Q<}V`w>Sqg8HAj&}pdf8UsAQ`uuDPyvx4z1W z-VMWAC&)G``R2rcXVB?2IDeA|%H_99fZ)3wKpf6a0F1f#^XCFr%joKsO=JUb8V*`; zDkd<*2CVb0CL4XNt&rsRM>kz+l5us(lcVHs`@a{Khiu8a;Q7EDTja`D8F|&^&26R1 zJqfm!e$lsGwc2x?LZlK*+t?^BpX8=9m6KJNd}NYfRQIpCXdPex?HhQ;JI`{~_~MAN zifwbO6xv9X;QW@SqsUtw$({1qSUXckwlr z3)m><2306{pa=IOIK6bSU{wz?cU`m9bgGNOX0p4Dn8l(^?LP;WFhn|~q+U)j6*_G( zF&VAX6fE}9(#mU5YD~D;(DBV-9vTx8un(?UP`Msr%$*)g#)hqLLrXBRJ>RdjJHZV{ zf(R(t)JjNhtkq*uN?VC8>3~bx`k&~H#_2@TH@S!$ojlggSVSpozgM$AVVt1MI-mK8 zQ_=V-a-4Hn(Tjy$jg6CFY?-#KUNV=DqYJ^2u!9S-a3=GuaX=B^|8{I2>a@&?Ghx!s z6j60!Gvs;Cfkgm$(*=*7yIR8lqZ-d z7m3hH-5I_kup)yPU#D6iL2S%TRGejEX%k??PQLnx)eljGO{xtmmzI(Tx4mhs4=uU_^Lu`l*B9wjM!%!T%^7hy^2+)gsOS>zn^yq z2J#8)LczU%xpj{}jH}bA+xU@x&JYx-So@P4!ap`6!8$9^NxQ76ek^Tl@Rd7SZLG+0 znqdWYMgs`3J^ZL1owmiZbr!+ZZw;4b#b4CPY+Y~tnPUobT$|M4b9eC9PeGwo%vDbk zE!cUv_&aTK7PktR;;NE1-HbZc0id&LQe8o`3ZZXP2o$!mgn}=?uKrA9?&14v3t)hWkgYx?-G?>doVy6YL=&eY({WB4A&&t@6 zatVp#U&SsmC3Me?Z$wBX?eI~~)X;tu2%``Q_oqC8xi_tUV+Mq7#6NALe^W6Rp+C>% zD|#!Eg~e2Ze5JvU<%%o?I{!RM>I;ABU2aAtWCmNV)CXM6o9Mg)@^0^kvv-ubRldcPlXgfUAu3 zEky<~-@GT%mn@70Pq{c2+`!8(LBibyh=`R_A)DSE6(!b9h-h&b+Q*v4#2xj!&s`bw zVrx?;&N-e-6D#35wl#|@cLvGo!!RSyk%}y|bm3D;L+Ya}k-prUa)yD% z&~4?}5=!*vRE!-}e^&+`fjMC48#ryWx=U#y43L-7&0tq%I=QrCZ{0>vtBJ}K?5d>p zr%p{Bq51zZZImI-of1T)Vf5&|8p;YrLF9f+n1qw&7zI$F`C5?5!nile#G)^d`<%v(GRO0%O-ynb zpjtVDBTm5-NWz3#kt0%x%HU;Jk@##KB{xf~NEau?T`J88y6fyda%}#UrSs#mxCOKO zKlPfC^1r4EnrgFCx@;;p%a!SO^5d?|VgE`rh|f`ps9Zlpm`BD>W8;Wfob=t9bdEaE zn>uU-3E{+l>}32}mz*jRV|8~HFf95CSbnS&A64rg^^w|n0WQW&J?N`-R*d&y@ z8lxZEMHDs1#675*Det?p!BoT#y(vn|n=NJjEe%Xs)@7-kji(a+Ypa!u@g5;F&oKOu ziHj^t6*P%+e~k@BB@`0=6L#WOZo~}Z{OcFj6@>0;178P%yA=z>7?3Szy<-2?3Vs`y zW`P2-a3ykNdZmI&82^})f(SLesso%FIiM5bh2kk)e zZba&CxX#^-v5aLMn-PMZkhbN5cyqugIobcyNYVx;H&473w3oUKKFExYJev@LzQZ+* z7A|6()cCB2z`zrM^Ihwb6j&MS0)wV4rie%B^mSAh49kyf04FW}_HXW@2wF*{1=Q6z z8Ul=?(LD@Lu&h=}@W`OPR+gROz+%FoZ8U7YC8w0P1c4^g_hrX$LnC&aosJGO*xzLd5W~1(He;jg6ob+vm|CVHDyT#? zi$qiz(Ssegnq5*Y&1b2va~)pyVb0qGcPhffE&M!VIflQ6QuZeLr6pagYN{L4s}QU2 zgsO#vPdcMu?q3dsJ@AuUnS)%Q^rcwjB{Y*;*pk={Vs06&LX^;- zis=hMQhP7ZRcn24a({j?JPL(KEgVn7Aum)eX~eoDa90%MT~0qZpiPCa_2+D1JjF#H zlWyFo*HJxmr$QCvM5{sgDybsFy!&FD`Fd!un}&g3D=O_Pj&tgy1j~b+t-Ljx;|RnO zNp}?wSkm=HNgMj}u)ahJ2ODt#{C~u~zl&tavggUnWw^{1OA5gdLa-Y`3MqsTEU`=o zA%u`Z3JIIADWp(B3C++vN+{S8N+_0wZJ5iWg%XAIvsb6|E+m|=5_tm;Q)x3rgR{ob^o@Wsj|X(^zMg1DDzC~@shHZGCb zmj(E-P5|1PELG-Hu`(!xxNZZ84p%Thm++vNo-GXyw~3Oa&EKrg#8M5>IO`)WBTiD( zAok1d6cB#1eZ4-R7VZP^P!J0?ApFhCt<}Op=N?-=UL#VA+3-ljz!AxVpX%o)&#diy z;*43R%RKB=XK{7K(4ZU1aJz8?>g60R4{`N;(PoV$j7I!X5-6^?&C`wQJN@e~9BU66 zdz|flcfcc4tf!1s0RKy!Lc~EycPy7+cC0VZAQ#%$SMZE)4hhGwB96IyE5mWBM4BR` zBMd*hK$Zkd9Mlf-=?fDCo!(?M`Kv#vY%-WsMNLr`3St@Nm(bLNN*scHgBUv|L@8-P zInW42D1Dygg8AM&&WX5h`0#`vt@}$~I&Yn};^JJr^=X>C9-eWL9!`G7l{9o_7miIo z_6DZy&sdXLg)@uw`xkdMGuSZ5@Z=4)%Hji>_UBl7))&>wopNETm^F4t^|N=P02MJ! zslEP(c&!y_2lFY{+35|{6X_iC^GipI=Ypk70xr)Pou zD$@*8F6?5P*!w1{JS-hpk_pR>iB9nJ4RCC9nqHQvoi+4e(_JBiBhze=+Eq_wj4n2j z5T~Z0s=T{eX4RzAt&lNUbS1a=yriNvY4KNU?x5|mGI!o(-G{#`IqW7!iJ3)b2}Z<# zIf~$fV|7X^Nd3z1vTA3_?te1)3~82@aJ4&cj)qQyqr~*)-b4xE(*4yZ82aV+dK~Nt z@CiBS6-;I`NQ%(pUNh8-QOvsy);_gRHwju`!{`z9C%DOEE*UYtGDMexEY&FH3d=?bQZHsiSEbusG71UWwo z1TBwI>BQbvj<$>v<v-VzK6q21yp&;mtn=;icpv*A{Pm}{K=jP}QiWEb{ z1jbB~n$-E@)oKhMcA0W5R3@HMZ#h222@1ZjjSKFZ(X70Hj7com56OYyhA360fB zn$~s4n_mw4qp5!+_BKyFY^N&*NN-UTIeNMzD^@*<= zKUqz(zQxe-Ep|3nimrAtW}yazre%Fs7L_9_$})a22%E(G^R>wsH)(~$h8|(bi2$6) zj=T|c6H(-=5cTCkoqp@VZ+7i`bx=p-k_Rz3C;A5xKLP)V_Wi___s~%$0SZI|CKI#_ zq-h{tVPi&GN{_gr#15cHsD%w44dy4=jFWnDFB--CwhA#0q;1d)RzawRey~RLo*i#g z@!f5_bIr!#@U=pFn$GI_E$Br^JN+XWe>S)Fb=OyaB0&n7E2BK2wL0+CQJ1qXKTMzG z)jwqLUJr57WK0h;9ux{Nn%|6+WKbCJip}XlFg>I!yZQ%ZN$`;fqwb2TA68eJ6K2y} zr~g&4SvchSs<)?6O_B0>;ohn!`wum3w2pnOR5iw?>9Fbj;T0E8yB=kxs;+7ab-Jjk z-c?;>w+P9+`paCbw^a&~@M`l!zYbq^bp&AOM6S1*HuN!Jh zv}d;;uQneqZikYACTjruV3ZR}ib7~f8PvzwCI{6fJFLmz=v-vXG|?o7E~lcw78avQ z!DL8{I&tDT!Pbs_w~Fy9N*Z&fVZ~?T6LH|am<6KV`s9)kT|J-xjtys2W90?&HR?B- z8gLu8AdM9Q06zgQL*q4VEI6G(`Z@}(`gmI&nV6rD^7VWIxO#~}6wse?@L~`^5zt>| zCSM$kqi&0&3|YMKg^63OmxeT2>xg?*EU(p8CAl#13KofE;sNQJ6;*Ny6`h02j9#J( z=1q&t-TY0cy1wTb9Zq3lNm+`L-}(Ad3}aVDme)eMG}@sY^# zON-jsGs8*Litsr&p)`jJN4nbt0A3xg%29-5X`Put7Z`bzb`BvG8p25_hXe+~J~P*V zW?--KYD&kHinBUBrBWVRK5oP%(va`xvr9_3MD$ZTa9x`~2re)RxC}w4vo1v_2qWhb zB${7Zk!fu&-t8l*IDMj;$+odcRx})7l7#$JL;cj5s3t|4F@lSnhy|iUW??ch&pw4b z90kH>wg!j?F_ZFigiw+WUnlMC)Zs66nT{)%77k(1DWNBl_%3gRUphB9aPrzi+y=gb zX<~d2LIH>~6M|272?~I35b_`A+HtmRf}0>tju_I>SE}NOilnq~=?Z}|S8zOGX9TrO zUl3SKuza~n*I12?k>Mq3p%3$8~BViLBPUn3~BA96dN=Wf05J(nAPt`txL!eDh#;>qd)I+|pAAu`=@Ps*Ii zZ{Z7TYUr+WeDKG;>7sF8$p{axjejTI4 zE^qI%@&Z}vM`;)^=T1OBuScOS83sjl5-2cHII0~Q0t<&?M(^~Aur$3o>$rAKU9m&5 z-O-l0LNGLD1GINR>E*oX)u*F*f2;R7keN@N6kC1Jr`GdqlcUfR)F?}l!cUleRY2p@ zyaIU-5%Ya^fU#JuN|-nv2SDFKu;V@R7>uu+@TC5`8vU&kDRrz05?Z-3U1uVGOAB#u zi(&keBLyyOoteiv$%4Uxou(eob8#-7yTn}hjK>Gzr~I*uqk<^O-sXrzru-v`>Y=r9 zlnmXDZIXgU>Vx3;AEotEUAm%4hg3tus_{S#megE`dPBG=Go5R3boYGNPcJmpmHv#n zB2C~;DX2lOLd8fv8QF>^@8GS9QM?^U?#+qitBjk-EPxOV)H}WxNK>7{vh6(tO8g?x z70^XbUK~O`+pp7OuWAxojC6F_fHUfR5f3mqd6Jn0+enV6SFMMPhVJVZ^ zs8j^=@N%Ciu!+{4e+kumpYlVS+cQOp+B~Rs~_QO=5DV%}_0*7pcY~_+u+`%Ym z&T^_;wb2S?t;_gMed!U}MG{Wvkq3%hfytuXNS>;AN`ca;uhE`hOT%zaFyA?@&0y7|m zQVN`UPIIBgltksnb6CPU=0-&O{7?ZczAk_7QqhSMk@k>j^hHO^GAV{45771wTsfd7 znTgasKBi@k19JPgtSA!HTQ8Ka{B=kvD<+wX87%-XNQV<-gK6S957I*oSh#~gk#8yD zl0zo~KqrZkpR(GUG;?KzqF`~r5kI(NQh`9sPbe8DEL+M=8gFUkq7W$wF=Zo6=hJBo z2fTWVoowCAv+u{cHgq68*l%%8xeCiCdNpdEb!YVd_;XL+c#Lnb0MbgcXMAjHw1gNq}sE6nXO~oin zVL@YhUup|y=$C1fED>sEQ&~``PLUD>T_V*i-Z7GHjS{e>K@2xmq63~a=+0FYRFeo+ zYt9I)&;a>lLJ!(7gQemkMwAh<#R;=uauhpHv{XZD1)FfGe5uEbe1Q}vA#-u)(PFbSsmC z-ifL>g{U)|{sYqSlnb%UsK_+u0%O=n8k*UBU5AZ9DN`s6D32nRRjByE0=5vG4y4f} zA{8aZf1T8|MO9Y5rpC728Hhr5VN*?r0dAMa*D5zqRaHf$kEo?JBQQEL@Dmj#lNM;}4MO9AlH9shwB@nM#L9t_ zu)v!z2aHiV9#H#w zGL|bVW>8dvWtB+V7H7|1Oa>!cF%bU~a)&iSKJ~Btc@rF!$dj`m1B4p>y=YoKk7lNv z#6lDMqz#$Yed!QWTg|@ENi0*#LjoKMvCnC0j#Uoqn6zOj)Ruc9Y$w!y{5x(puc+-$ zcmu`{|KkQl03EQkt_1-Z3^_y_U&crZa5!mXg2-(`r-|}m66sCDn*YAfE`>8>T8l)5whe^5&^-JhDyVfIZS^N$*(>JyvuLO=-~VDF!6#!X7!rjO!?s4X zE~V@2l5gGU8wQU5q}t1-aAv#77-KkZ4WWCKGeD!65~&dm)h(6ov1IAZ_;N_u*@>Om zeNofnGexTR))+!5T$n-6e@GB_6Uv2GgY`MtFu5&Y=?} z$#I2}5N~zJ1|9ySA}jtF&)+n%gU5q}219a65M?)xe`X>V2Sk+EU(ov1>W>CChkJSK z%jwEqRRazV|8lUO{Uv=Ek3_qF5!>8vru;=J zzae8VZ70pG?5tcC&RYx9SPr^xrl>CImrqpec_s9xqU@t)oc!Ge6e+|1gL3%F!RNg? zo_IwnYZ;G^jfK{|haz3dO?-+@W;=6#A(m;Nj_IZEM5_v>CD7b>{IJIV`aeW{3+W^X zt}52hWhU`~WX#4}JATCLWnRKo8~@99#R#xtmXiH}G-l>3#k$&P=x^8Sah1MRPlGx1(3rGK{5Gn^Y4BfoZz*`qU=BbMn)digQ>Rl8 zzcG}H1b~yNN+ve(k7L51^)rKsCxn^(J?Gfu;+}}Y?&*SlGNo z6)V+&r`Jp2sClqD$R#D6NTjYMdp%HVeIhb}{Rl>M~`X^*oJ9XFHl!f@KMNU^_%o7Y9+P!_p`4$}9^X5}dj0^c< z-yNCubR}jFbII_6{We^pjEv*BM z?4x!x?{2&wMgT%L(h7zZkYw(OVU{%j7kQdRO_nAa<=R+7!OapB3_rq>u=G-4Aatgm zkcSu6=d)+d<$s{`0Z+}V&VK-{{6@7JZNNBGZH&`#$%94`un!l(rA#4eluqZW+)q~L z_h7L4p|9{5K`3KM{lnpAgT$Wv>& zS21zOY;Gxl+*OW<84vjv#`KX-SF6>>)hBKv{~WV-nw$)qgNXA8C&v8y^@wz@%1`)= z^Ri-yFpo|FIt(DH$0blM{_KwpNl1vp9dfhkc^F@Nl}R+cE}0DL@@iss<;q~pGoEZC z4E(lLix-(G&~mc9BJ&q#B6QBPK|Xk5mGDu9|m z@I4+Xcr=}Y2u6OifUPQ?nJ6ZyDUq_^nHP<92;M+HRHi011b|qy3ziZ3Xxr7wMv#}L zkPlP}SCE#Sg4jkl2QBtZHu>C{h-fWjvQy8A8mzRdGV%PaF0H}Jkrv=DcDn#iWh+!O zmLo6oCXB3AcIC}EdW200WGb4HP(q_n04G@jqD9-)0vZ8VYsWXH%#JSDLMkaf3sfo! z%w@ZLQKkuv&bmzjUSwEyM`2m_g_f00^rr-sBTz6u43oQ6O(D#Rh(-Ar z%;+JA^`xBU8_E_3XM)nJt4P)US)5F(IzBCeoIr#(9ZTLI@iwL8MqnE$D1@cWpa-KW zXB~i5SwS;`1T8d()9IQvIBp6w`i;HmK`%Q+s)q&kkzZLdAGe=PBNC4$=(~0MiQuUZ zXrd-$<+h!qi4s@N7?Tmj(W!@pf{R=DM9S;4V>;qB^%ES3etL|v4!EJ8;uDFWg4A@o zCdlIPllpIy^d5E53PVLheSG9&c#B&gV*n#*>-EVVjJt#a^K<0*< zlNDWBB`~8xACn4bSVp=K1C2KT4uIZDu+RdB!FoTz-Im?Upz6a6%I)E*3bP|D!onT& zmbB|9@d3|}EU&~XRnM`3g8H%oubioAqgNHB2ITlmPR(dqESbl+q9#;n#x}BXWeZ<5#%DdQcM$BF| z;&bc*TCV;OVl)%93@H?+gTR*K_Y@JFjMIuNTp{(&MJmG zuryPELK+mK*R)J#|KVdi#O#p(aaqtj9-B; z5vu7&lK{G)2su(!$KVh4N%&ZEul!;4o+$(-wDRFeH&xhiV5#7)hARdp`d;SH8Rwq;6X`D#~T(jv9jA!lxWNPgdK(>+an1sd|Nj z8uLiqx{9sm%S+l+jk1tdJ%lG9u_>1X_0;R^!NsNZ%DM6y@t@KQMAptYoW|KAr zZRB#_Cni~vn(KWUdi;&^1Fm#yQz=d<%IPI_;>wp_sc`jvZ+ZcwFLNeF(#>emGfz@Z zy(J!k-sMSB=x{dVhX1%COQQO5i*nj1tjLo-6naot1(t&vSD=z*B!*=%Fl%`_dB1s8 z#WbO5?}6gRqM*L!yST@u^ff<;a&~MyhlG#ixlh4h|FzZr2ZN9q_3H;W)5F zp1Tn#U4#ZhVa6krJB?Os~ph3wlOc5)u@q$|= z47HQ6F}|QwXfejnPI};{nC8-1mRo)XytB)}&#Dmhb44@<2G*8W@v5fswNU7Fpx{B+ zQ@=9Xy1MU0kqq3x6txxFfT z?2~w95jxG5G}7u+!!PX>l|Wb0Ryepz{6Vd*5hY|6buY3|K#Zjxgg>u(aVVY3HebbW znTT|QOp+mzxlvfKN|X^cD3_`C7@D!?+l%_|boLb$~T?2^n8(mHQwl9Op1{STY294|?Xa&k(~z4<2Hpbg74XFA+hqbr&vYiLZ4MMl+?!8>Q0aAWfWIGoD--vx{mrY>(}kQ@)xfa7(oN&DwxY1 zx(7od2>}JnY|befU3Q-tOckmEaRTYqlpLQ-y2#!mAZ^3T5IKDz5xH z`_PesQ_v05yeQ5X^y-pW(m@1;iQH6FPdgYpbO{ESzUZCAB>M4~!_w}x!tLKv1sat746 z4mw_qcW`ImCB?OR+%i&dLLCHyX%Vz&D7xY++G8P_b&YxD{T3y_gfivGECFF(ezCw1 z9Sc`5zO64W%-LmyePn2{VndfpH>Lp3l*v-<3TT~^c=byYfNsD=?5X}$u?nM#sq}~x z>Y`NZY=)x?@AIUmc8C4E-?p((Q5|FP^MQWiGZ z85Y}12=`D$jfv$#P@^6WkiM(~{4GvUKhO@!yErBj6s(goQar|#x4=#*(wApbp38?< zAvLK$CcHs9WE#WLOykB%dFi7bYVkO&BAqVryZ{dkaMYg<{OnXn(_-5#*O*s7pb$4; zbD?t7OEM6)HF$q&LwbQZb@g~Ck!c+#VZ04BPt}gVC(7oDP$mI!8+O95DHfET%&u6a zffK;KCTu)hB4D1l)N~ElukbI^?5Mj~%@wq!U-T*<)ybtk5!$jPyxDW!ggzp3sVO!W z_-ziwSwR|EhvMunGeDZd?j&(zxzhfKHabRn$IrPzh6P|!HfSMMvsi}q@tGML?YY09 zz0LG13g)2&@X7Q#DN8q1qM&kHNGs8`d(6WFi1nBVXyTCO5-6cpzFtTnsq^U z$ zh2b^(nPL4%F}hPM9+}EOHCDb}7&nx5RLcw&k-0l+Tw4xydC-bCnVNsuN#qZfAMiUh zYY0eynYWLs)rdEB>{#r%!@mP~Wnp1};J7 zhtI`qXgMvKTCW>wQGtSMRjew7aXmSG~sSx*Lb=Roz3*wgqv)HLE*@?pv!8D1N=H+VGruN{l^)WyEe zw5!7`Zn1gOQ(#6mZx4<&J^d@U{FtV!=q1!A{lj|A(dP+@q}~QjG&4AsC$cvt({7ht zM>;+O-Y_e#>;;keW$|kz{*v&ENfvA%;_u!fN{6zq7op99AYcS-c`SG-57`LGIQmtQ zeB|{7eSRjAYU9i$GFG5q=2UJ5VWXdG2k2MjfW$Y*u`dZ&ia>9CricJlSK?HIIW6d^ z0lA(@>S0ZM)`|eXBxmdxPn0F-HwatuLD0{IP-7V*cxurX+V9JfWZM3>6+~eo=Vxa0 zB{61QP|)7@Y(**{)4PQxE|pOX;reS0CfmB-)CM+w4(E)10C1LPm>^()XIsQ9Oibt0 zLN5yW^*;6hnORMr`>hxHS@oxG3xt>!y@?z6eaUdYE(&7w%NB5H(+E68{zrMTNq{Nx8~R5SU+ps)#ZXF~Gbl^VEV_;M*VxFn_mO9#v@+;y z{2E`Rg^oKr%KW*}e!c6qmVT9JZ98M`BUdFdsB`Ya0+hNCenGma>88l9mah58v1MuI zy>KE`XQYZ#F0Ty!XHEI-n&Xc){Y9Ju)${LI;>mdaC|~b1DBw%I?q#3Hyn0&9xcl;& z8Fg;%a-;Aa({xfy*Rw&9$u%qZO(>q|!|lQqsUAt!Z_ z{N_Sqv!h5b*5X+0jPymO;MoHStzs->=FJX;fSOFD^Y*Nr@_$XNHbWpiMM5n-l;xK^ zOT0Nomo)=$l^K5#_r>dkxQIBf$)2QdFG`Fj_=x!&A2%bR4?`XopJT;UI5}PA5%2qI zfgV_!j*r@{&m2SYF1>^;@n&5-D?ZUJ>@?5NMK@4YF%MTxe2{kt{8DQT)}r~WEo@G5P!kj4q$bSpy=~N4)(3&B2H0BEHB9ff-9NmbqQ19;cBwGeVEW zOw`8)FK<#$gSe6Uy5~vDde9X0nIbS9s?YXFwpY4ecjH-tXe>joL0kymal3a=t?RFq zFRR|LD8htIeen3T6#rPYWg&CmQBDNC@YK^tj>E3q$cBuB+sQm#gzJ{h%@G3Q7D^@> z-bTv=qa^*}Jz6!Ss%Y1$kO@Yk40iaoniDLp3~3q3#+8-|kDf*d)A60Z$f#_cXA&LEYs;^@g_wfW(cBa4AY|K>B$Z$a8MUz^?_ylp&}o zvJ{|*gbtPU!=(vl_E5lVb|!mHNA6i>Ge*hJIdmmw9!00qymU+ZtS*|EJyt{B>*8P4jMC?XxzhbsAA@%M@EndR{-lUzq=_J`?*0rK$sfs-dvy}tMQ zp3e^*R$gA4{qZ8hg1%5&ZmAHJ^c8j5+^M z4|9-PtJ(9_P+*6ZzmttRv0- zg8b(NW{C>_MaiY{jBanCEd@yR9KnNJl{dQFZR?hCr9P2N476IllM3L4QeP^go2a~$ zo#Q1#Ka4GwZl&6^hFIE=77q-;)5?Y^rvTNDr<>a8*xm)UBh#DxUEEazbFqgfD-pbb zDL(V9uSSc*h(iEpJV^&(QgtTJI1xg@G)e$(-RoKuHGipjRB!upX~_z=Q{L%f_kk*f7tJyO9qpMK9` z#JjY53s8_Bp)7`wc|-~>a-(z%%R{Yla^uB^|G#>JGp}7!V_6pu+v$D3 zw5-9T&2h{3uhps?hd~mZ6Omx#Oo?C6@>_jR{e~vQ@Dy}%KI~Hfx0l9wlvg2Rb`N?3 zg)ysyGO?VOJ)e;+)3wN~@asn1H}HMV@EaOL8A`0kmLS4gDJL^#a%vYWREMpP*7<6G z)>h(HhJk!ZAb&oR2P5S-EqtSwW2?C+ zE^YAfYEQJz$r^wi&VQn@(bMa}b#;i{8S~C)E z^>qO#j0IaGB_k`Rsa)fVz<1)r2F08xWTfwBg2!r1d?aqfQQJ$>6WK^P)BI&_tvduk znU%PZ3D}e|B>(D6`j^JM%MresePOQ|1Q`qC*0H1R50mfjG^Uv$LQAVbBLI_(4xOuU z*4aop2k}0eya4^HD%AsdCbr5PE{mWlzzLyDQ3g$T^slFJJ~Vc z^b{;5rlEz$PAipA%Wq6gN~QQYgy^$7+?EG_T%fh$%~8Vw@S^UWFhQF8^W+4^JJijx zCHiksI!Te)K07`E7X9I?QML+-%Dk`L!WNi>!g@!1e7V7Wd3U@pv%SsRcx@7gDV!EE zQ|*Y3^wf~7`f!&#qlI}rp&wbn2OMl^RYs*pVyUi1UFt_?SpF%lj7nrnCLYTM0MMFB z^y^48sz=ly9ZFh0dP_`LNSGt}Fz}lA=eOs{S*}BtaV-|vv->;UWUoEm4{ZAMhVbeg z?|7*_n-AIZz51d1^%z2?t4pZZ7OFdD^VDwL%@Ec3DzY556=Ml@mNx8iP)gHzO;77z zr`epvWwf(R2}&<_3$5D^`eXF8A@gLi%pySU<1QO|oVkTMDuV`?*(P=r!hL0H5Swg&7ugSm;oT4ipegHf& zLFUY_BVxA&P{TVZN~ zY>2a!#9Lz0CAp>Lr8Q&fZS}@5YSV|=`(XT+Df`Mm>H)XX!`nclNJ#{T8G=_c#p+M# zJ|7u4z3;ZjG@5h;)h8GE$P=ziDBv0-CM^B3&{Q z2kphi9G}uTu;{ddDpT_dmHGTT<}x~5eJ%%W3m%9@7MH<$k{&dR51K=`1{WEDb?Z|! zHX{)KjW};1NrMK4Ay$ssT z4GjR4!*%FV)7vr!y5_YU!U5}Mpvv|o=D}{}_zGWsQ#zZR+yI2Cd6Y!p{9Q@)U{;>T4T*XbfGjqM^7XuWGn<4p&-eMHyZv z(LgL&KSKP0W@1Wqiinp;&^kuL6nrj-9>K(`cCoZ=C1g|$rpeN3HM65$)=(3+ zIr#FQOO)?Q0?dtJE6v~MLN@C0MSSX?kp#U_)Y7R|CGoIk0`=o-{8H57wjL?)STNEj zQm)vE)1V?#bitmy^5l@q3wP2NhVmd1?=N5txFT?*;-KI8wkfW}jFi)uAPf`clv~kV zn)2dHx*bF~>)$mb=wI#dC5D^Fxz~Ax@!+{J(D-;bUgO|9C|GAr7z7_h%!haBTAcM3RX4Y>MFU@H*O3jk+GpF`5b1IUPAQlE5%DY5~Suy_l;pem2F70 zI7KNYQj$oQX)%z&VSSNLMusAQ^&XB<6O=tDLqmF&93RJM^&(xrsyGr2#szoSG~1N_ z@SIo_B*=l$$#*J}yoz<(lJQD@)z*Z|hOawmHvMOfPMcrf_-7g=3vI%&IOqz$&RN)8lk#m z&}-dT^#(AMfV9CZy3mhM%^!0KVqig2mQe+zA!jC4+x;z~mxwE;#4){ZqE<3mx{DgM z8&SP)yr7{$<;837jrI-CUa!MWhI%iq@fS8gn{wqXYMZR8e~PIXBSpn1_4Zrl;8HXk z$U)^*yD&+MT9O?4n<}1^OiYJ5=q^!*Ws)}$ZYr~}I>Y?}!ZB0}fiAwFVTYe5?Ss#_ zD*UKZ5W9YfQ-fUR#DZ?+~7PLXPS_?hEs%^4mxqT_5m)Y5SeW- zXE2hvgovir;!^(lh4Gz@<0(|kW6c@R|DPie?fm>dfxl0)@)yq&ndg~Yn z)4n#vXlSa)1NqjYbjXaTK6JuS9c!gjBVcqnM3(SPHB1r#^CHR5A_{R5TC!53$E5mj zqYfN|wU1+>?yR5`O^va6!^PK zo>^IcGPtVH9$noR{bougAgU|HrqW98i^+5w124n9J`pk`i$U&EIIb zeqT)J7|i)Fe?<*UV-Klj65iwJq`HWn^?54pU{$N>nYqNjIJLuVXa~3>LhXf+X#7LS2}3?@am> z0vcEC4ded?>TilrGtCCv2)$o<(>OL%a%dFdq++Vc>masohTrlUl<4Aiko5D>xyVWD zmM*B{0YLA8B1{a}E(TsLT)A(dJ1XAFo2b0_Ml|CkR@P3gDES|g`v0FYt|6jwGTvwq0s5CUf8wdvBtNhxWhHORgj0d12f=O2O9=GJ!g=?Xgj zOU^3apG~f=J^=c3#h!K+T6WMn%J7Y+Wwm7*KJnOV*@zvxGr-gg8HxOQ87NxUh=)Q5 z5wn|BmFh};%5rTz5(u9vBB!oD1`$wVA|w(c7@$LnMHd#Y);B3SnIl?&f{+eB(V$OfY{S@e!G5bz1u7)n-l0uRkunrmqClPbE5spGxFs z5VdSJ+aFJGi_Ls-mt^>ZKyxn0h9by6;&1pC&+xgTFgNY$!vi>yl-fIgr|~QZm;4+9 z27ILU1K)S>x)5PmBYxx&a)u>!7XGrKpv4RN}wR97PZy4{zvBYy0?G3VpmQVPY}sx=`-=k8eG_ma5jCC^;ty+o5A3(VIl{2 zI3nraNbpOVe=8~fmbE@-0C%q8uuD)wvpY)yJ>0)C4O?d1Q4-OGvT(wd^wgF2F9G7H zh1GJ5jPmI~MkLL}lm{&C8OMD)RS<(>S^5y4rupWOh_8>FH6k?FOEP;}qsSpMz+Qn7 zIFLkKLen|(D_Lk;8^6fIGMGH{;Bvom$WRF)c=c=j=7hvRC*&MpqP?XfkegL|Tq?5E z?vvvi*ezd8x;mL3##S603Z(KQvlA(qIMt#(k*9QdCEwaIOKWaw>~vtO7=?z~Assp! zV4SpYhFuc&iPllBQlBH}vLs8}EHZ*7W=rFxlDQ=HE$Pn?dj>G+LUH|OS5n$0Y2(Cb zzW9z#R4yTh&DLN_6YB;oa1|dkyABp33_g*{&vfCaFjUIys`jp8%WiNGYn6!}{TP;ysT@+{*D;2f_+lX*V8f6M#_y)t27l$*+4Go6irB5JYqG{FQuz9wM<+(T?}I&pGV^d8qD@X zi5Ke@I7cc=a}`IM)So3uJY5@u7M{Go=q)DP@Z#FprRt0T=>Z@}d+&)m2+c*RXoh>3 zv3Nb?zZG?9RfbY5Q%QTT0#RCNv!+XCm~d2lpb6vKmqb)r0ER@_wz_Rlmvtl&Qk!pS zHUq*5kAt42_xNZZ4Y zzMG-JPgp@d@TMMqL(n-VLMw{jPK1wuK}U9#ATkog{DqXDMdlZiQd}r~;-MTFWt#Rf z!?*^UeSjponNWhO4aP*45&q0zc?vRzA0v#5kO|R@37^S2cRYB)Vs({s#b0l6a97i< zn;a^`MN(EnUR)q`s+LD2o_{vi{utCx8Z5z3YPS&;0-SFkjSp>Z$5M{32Z>&@5i4I( zkJ$X~-~W4`QsHMqkFK|k-m@sUf5YFN``7dQIOu78|3Jq5=3)DKvw6MV-f#H7^Yv@K zhK*e8+fH{U_zHfs#w zn>PS|EF+Q_w=QMgj6ts1%2e6~+?&v1|q z>_{UR`4QRPEPVU8ea)3)`_5qf7>@Qv*~*;f*S>Vf;Ilj_zy`Y8^^=t4zTVu)576du zyD5=PFAh|9#HJs_&VdP3g-k=#(yPba8qcua;F)YhTNr)urQA~rJ^>E*G^Op~Zz=;c z00%DzHDuq#fL=G)3oJgXken&>2Im2t$`;}=kRt`@C^s_6=Yh8BgBIPsS#Q5r&)W~{ z?T-&AL3yJL&>{-ys2zh>D)gutzgutLS_t7}xZb>9Z+{?L%cCTK?_&GtxK+FPple4T zh+td3jWDHL6h$|%G=@Zl6e2eKeZ+}^z&D@I8wov7^PmZSS{Zs^acwFy>fKZJViY;?KLq)&OxIk98yFsf@GTHvGtHbK>-OD#&!=StqAhk{-JSFU7rIvnDtM}zNhKRUAn*MtGq!DeeVTW8!N|hXY>9VN1)zb!)--{q#2@{cNKZue7D;CSFF7_n4Ket zBjFV`6xqD}%yt1K{}Bmr>Ei%9Tt_-rxKM%3hYMgQ5YIyqH$OJ);xf~|0RJ;2HvbJn z`!7wnjbQT=)kK{I)sJoLWXyTql#0LG;O^eM-h97#_kQ!khs}@Q@nz&Gg%R489MuN2 z%X?uTn@e8?{q5$b%ZyI(uXGT^s3rUY1~acGOd^({b-eCxYz27{@p1cvB(ZEVY0vMl zkRmlS+{NC)h889Dz~?(F@E3ayb$DhipG$(2o6SFLH-D4{+1B-Y4dSD6J4i4#D5<1% zdJGnWJ&c?iZ~oVREwAmr`M>^O?rnK&`EOAC+YWrz2+WzeJ?o~qT7!>^8CO=sSKAxc z3j4LokQ+#+ddIjNb89$bsKC8X4)R&;@i2QXd*bV(n++T+fVPK&z#J0X zuuRbj6Ll_stvEU-0J{yca@&yS0q{P1lH6AYb$4_0x?Y{OyH^yr-tN}a6o9qMAq^A> z0~U4UpKdm{w_sR#m18zr9$o=}y>Yk2=K|Q=wiF=u^CX8;M0-pc9p1e1VgShwLaq(n zYl1Fw60quE{TP_KQ#5<0!v9()CJZWhoqG~*${iYI29%W0&+Ml7BoJVZ4Gre{FY#!Vj)f$f4>Sj-fn zsNaTfO0+{5#TF=xW_ht9R&t0&u{YfiRo5Qsaa)U`NuR;ql+0zMp6`{lGzWr zW&=}UoN>wUcsL%tZg)rC&$&KAnEgy@-}NJl-uK;UbN%{O5n))(fOy&~caUDuHMynk z6Dqm_+yEE=#DI-%0eLBC+DC}uOvu-#)ZreOhg8_%y4J41r^NCQ9SK&n*nyp0MZCUB z)Yuex#RCO}LCbq2eYLfpUdx`Z2Vx-S8A?87`ci;?MVlXWY$t(LGbvd+>=&Cv6MK|FyVeCg@Vr?d ziC*S*N?MpD`=&!pw8J34V>mwc(ll;K@aSBpyblK^U6qG(D7)Dn@n@Ut9?^(CWu%2k zf(ue$gOpc10hXjC@-WVz7*Y4MF|9_py0dy7g)qXAZw|!y&)&ivl}nkQwmON$X5_So#r9wD~ZhtuIi|2wR1_Y6RE=ISd_lQDlcREwQKY{=5=KakFzHe_n^7(<-j|?M_I${x! zyh#mF+1CASgiv=|fQok{!5>h(Inm79lk%c%R7vcF&!B+%rvU_3plGq0YkVzDh^BY! z5Q_r}LII$uK#9o`q655%#rT%KCBo09&tB=$W!*5Z2B3hd#L9KWP~4#>OJbv%oejm6 zee`(Fqn_1X$sr|;)ENr?hAQok&S!jpRe|wowgrBsOqSEoS*W4DdO<;+ln3vM(@Nytxmc|Sf_{|yYGE}>fu7odu8y@iF zmSFCrydvv{;QBxQ?&b}ai58L#0))6pgCTDG&_;-V#wXDvM>~WxX%0>B4mXS7TJ!2~ z!>tvFGKdkUarSiQ`Mx5R>)yG%T#%VWA6+NKt>&uqw90c^G__La0s zM8kl|wljl?F>d$~HPbRMRuAfn6V2$IY``tQ?xPEAdHNI;P`Be6O)yPFce#}mffbs* zzCN7puGVaa^4>b7rTOE*03HuhXm1$Pre@4JN_>gZ0@r>Sw+^ELB!NI9z{%axcTLD&75+)VAA zJ!yxS8gF5|rU0%MvKS5%7Gg$lI+Y%9>7Wnj_9g3K90Lap1d$_=S~$?s@MYaY9vVBW zS1>`L>s#}WD$c2t)`JSGO3r<7?A6S!N9#ymGRjXBXm=NNF7Y_*Tuu-R$bP$CJQWca z^TGnazQ^%79rU>Q*2}xkN!D7zcA2)WaK>=qK7xW*jGG8ZwiYY!5Udj+6ju`;9yh zPP+IotBavIZ$R;JU<`~Up+fB*OYHwRW+h*~l|zyoQ--!d+AuB)C1 z$Y2*@u}YiN_OjLXyH}3O%%Zzyyz*qUuSq&sV&3kU{mU&&0^w*jE4i{uoSh$ z!3AwOBf+boDfe*AT-{5?rjfaZ_2X zF&j|RHWfNyZxU6|e>NL$mpN+iOM7>&*uQbLjnp7A06TQ?aLb{ns|qHmF8{C~j4y^v zgJzwQJy1q$b;^MW8aj04&lXjKBH#&5)>-)=PedLnkdQTpG;vj`Nr9+2vkeN_6Tm0# zA_QjY210BJDlC;{;s901=HvJcE_#E6vuAgsAj(WdC1OCFB`cg|Kb?tcVM@rPG}z`^ z(mp_*u88poDpn++d47^#^ckut2he_Fv~VodG@=F*VQQ@%7+LT#L~6jWA=d(2K%)t% z3HFsQ0M$f(+KwD_#EQq~byS|XsFZmiYe352>4e{`j-gC7G#iFlFj;MdvZ3w5OJiVT ztCkR!pl~$|^6Gj7mo8i5TUi>!2bj8;J+i-JI2+3E;Q%X0>65x~(JxtzTU zvN$@W&mcL!opYY=Xs)l$1kP!k24)SZipFKYuXJ!;TB73zvmiT2hGFaI)t1X!& zp&?N##Bl+mYuI66U>^|4lMllHL^;qS%3ra8rJCtKRFrM^gVQf`i+5nzKrGvzF*i(3 zCOhY37GYFpkg?;j>_s%_$TLi#Z8Ek4=Pc~Wr3b}OOxpk`1&F3`)>af3E)Hq7HQ?x; zGL|FLZebJgp?AeFDq=LkHC{RpK34yWC~nlaX3BVO-I)MD2ff?1T^6~2kD~^aS*Gn8 zbuq@;uI%o`u7PQO8oJ7Yb-Gyuhbj%H3aK_3r0DfFCm%$>3RE>QR#CZLU*B6vJO`xo z8#Ee#18S!5R2C$*$?XSi%4*8~CUVTBcqp{ysAy!W4b;cy8Ld<-RXoI0qfvb-Wi7A# zD;rM&eQ-wrZqkI8u7?j*$+D0Q@KRRsXG4fWWV0Qi(=@J0SD|}Tj2=0Ndqb9k>W8;n z`Aii(iLSB%QUn9QsbPOoY%#Ws(%a)H76RCItU)c_F=Ltfb0uMuIAx|VH=8992@vPV z0D`?U*3v{vKsze{X<&xv5DlM1-6)fVj zAjpwNA8zj`=la}RgnS;XFmKCF|IlQKQ#-sdU2oKa=5TR-a%JGua4vq2$uUmaJSPI0 zMsfOp6DoFeVoJ$amaj`C%~|i9k2dL2NI0YZ;EBJh&NBcuJDo_`N6{Bzu$-VwAn;I^ zWt@|Cab{^(6FZ&Zl!Lfa3nIpxF~{i2Gx{RBguBF?v#y!zjTBY6P5YrbkMvn1Q^PWy zaS2xIw92X5L0P>?h=4zHhN^f>k{Zg@ai36k z=UJO{MN%lo%}FWOt0SS~5ugKKZdo(pI2UGG!Ek|waZec$bN1MPNmIO3lbH)$&TdI7q6fMpC@v+auvZkq;Vdt;#NR?S3)%-OfEOX8sI_!d;lRmK zFJlQ1ga?QKLCZdYyOXjpc4oYEm<#;?)ic!0W?TpmxK|X5VqdI2w@=s?#OTB2$%;T& zh}j1k0)tLZE%`e7+Y76EdZ|3}S>-f*V#8Plqu^5C_>PPfQVcZ$TdqyoX%HFp<&qpE zPdh6*Ux0q|agzkSmL1qA^9QU_C*VWi*>&hjxeA4XMW%x(T2`mYa4ejUG$L>YaTgD# z8fRf~jA0o%1w>OcbXtwZ^lf*#a zqPj`|4tsS)Yp_XYfwpQu^Wyo@X?W14M678R*6Ypbq{KM_>E|cFuXaeiWhVibiv3dk3qmQZnh(mDu+Y#2HF<7Z8q8H>`9Wm}8_s z*k;i6qAvD|tp~FJmh&ef7&21aS{-%l7Z{r=#!O}o7ii{cSb@Ne;Ao`C88X3hM)OON zfkOS1Q1@Sgx&`FyuLz)+UlVbjLW`kOr!10`xJ}@4S~qNM)HIrhD{z(I-3KtREWVWU z!i$}me6cCuhI3^BwB>BBI1|bcV`ar*>uq3+SNO9 z&ih#J$Pb-zvyZ!Cn5SzJE@_0!veFQvIkH!QzeT4PSzB!=md z%p0{jGC__@HbZ&=!YQbw3~3bt^+78df)t&j#Owu_c6e0XNMMqJ9z>0h>BT}Lq`DrV zo<2_%X=GJx~I588zD$UAmpe^ zBReWPSlL=mzz;?_Oi`FwlbTZ9$4FjHgqk2m-=rnbzSS7MvG$8JQPk{>P40g<_ru3T zxsgccr&U=S4>s{I7AUItP$VuZ{SEgZRFkX7T(Z7l2tk4)$Rv}YjkxO_Ez!QVNoatR z%?X`HTsMNlUR|OszE%)i_xorw0xTcfckfzHSiS53rqd}7?K-<p&$&MXk7fs;$9tX~oJ#GiH&#OhD zefCM&>0z?V{aC7`ra1^9M!SGvJ6kKC2thz54E#ru+r$vStYl;3(imyw5O7YyeLca) zQx>2$XmV?+X?>_84zH=j&!`u8mMEm?;1N#2W@eMoi`^VeI zyC2TCM-}676xT>d2nLylusFPPP`N}!DxjfxxmIkuzrB5UV1>WkLxElTr8|J|DS#bwuC$^DUJ>c;EPVIGs+!$n!=rK!Vfh_Vyq; z$NeLvJf2Q`&ikkH)A4~DIuB>R4`L^*GEAMVbF^NudFgQ*AlyF1gu+)9K5&kxHhKbh#5Z;Jrd=6%O#)Nr}N|S=^*l> zlHNYv?f^Z2VC9fFO1MW|d+Q7Wxs)ZQ;?Ar630CJ@f`{GXBU(7_?%wZjX?hL>CpeuR z9!`%r9uVe^9)p$KzsDY^_vv`|aKc=u6;P<`xFdBwV^+5(Oy;~lpC0a!0&^n&d_Lcu zZ=c>D?__$ulgl+VifFX_-5I4F4i6uZ{&ajg-=~^dC5Y$qJA0=GlAWKT3-kf*;|ZDe zub=MEPfw@UyLUTU@9ub}1&`=+_dwUVrjhrn(_8M=dfaopKLWGuPy5$zo*vN3`RT(C z?{BXW_~CR<{(g@Es$vV%IH>q=A8EJyhr`ox#lsBO$Ga!`>gkS$u1=>r?(FV(o@9se z&woTI_9v^4J*dmOJ%Tmc-R|LbhlL*Ke+P8P!+F@r-Io4%K5w_@+xwFZhzr5!uxJ%~ zjsB>AzQOKEfErmXKrh!hPp&&ypw`V)i z002f>%nE5m$K4(d9}nN*cGUdI9)o4lYfSOIzD2$>QAlVBInE3P-_t_ZM(%D;cNoaZ z(zqf>?tMZDW6IEpVNql5AA4gM1Ez6yxSt%SDB}b+_-F$5=*-ge>pU7^Yhs%OFMgo- zdB*nsu==|59S?Qx9flPfBf%R zav)6B>xjq8AwYGCsIX3Zz(jCnpGfL*hRKl=8ZnqALTP)oeZ};V9DhK=-8BmG1=|x| zRGoDAGG1Gj{L7;)VR7M3J`+I-dlWUNSD|g$ECq^9No#Ip%MG^d5~699m!L^EFBVqRxtSgQuciq{yLNil2n6xp#Lx7L~AWuIGWe7Iaw!DELZ8<=qUik*nTT z2T;hUU0JAAAQ6bHG=@otDyM38CL4K2N$^T9O$|$Nh9oP6CdN$%x(bUTX2x#Gq@IKv z?h^|D-B08(+pp8jpa!APz;vn=p;0YI>jpR&r~2 zGi~q9$bIHp58a|p`${n`b&4aRj|z@Bu|D^K@*ER$MjxrNI=kKNt;-uWNGQO<4s3=e z=J}zd!Mf$ly}YoO7Q}D)L{x#o>fnl~kU8ZiQ|x+q*gYE0Yd%bK)mN9JZ%}1P1<|{( z)JtU`Q4W+&q7JbT3*nh!xzrLh>hf_W^{7^YO+!eAWHlWWX;2BX=^A~*5MGc(hICF^ zz2s&DvOF!vgixeym^Gts>HVxXwr)2LQ*{Y2C8EjYBfyL z%Sq7+Y+q1-(}qdi)V}=zEXXQK?k`0uma>vpixwi}*+n7j0f2x4Q#3jDehxWuRNSO3 zp_Wou0FQZMFhhUE{QWAgY}&+cHez94_R*Hi<(pRUiQ?UT7~%gz6)_*`HRMAqOsm zX>p9)4ROH^pFzMhu{yrWAq~s$3r!v!P%9;tVI;H#KmwD@YFI`0P*jQ;^6|NIWoAAWHts_gyQ^1JzN(U5x zv6~IsldUJ)R0Fi6_=N;87qslBB0V;nD}%Jg5$`MCdOF$NUUn$qZatwEBHQhE3K|XJ z6Ud1SPD`0aaxmcYP_z*qEmcIK{HlS43N}Vn#i6)ne>*i>fV5%AR^lRLmf$X_yi~ZN zKsc=3UC_C4L?wvpqbzc=XN#tpT0LBrW=RF9q2_OlaxA*BSj40Tp1ek5*b}y{~ zc5k>pDf=V|zvwRPd!h3O;LZ8)-OU4!2Mybe+(=|=(8tPxh{D8@%7Qesa%#d8=zZi_ z+o;+erS&l5j45DMG(UQ^wxg@F?{AZnete9vA((9; z2UvLkse~mtk(un+p%W)~QrZz9(?Jv0x7VB7%mnZ6Ejk_4HJooYzx$v5AJ#)m|JgU^ z*?ZSKOu^Z`hB!|#>ppzWk);EB-QH_)5ytpsi0sBa@^eD~?BeFOL&aPLa7gKZOV@jY zk;N6btOm2_gQ}bL(gNmBU5Q|4*56w{-p^ogloG-)_0M9k)_4pRq*(U&lP!1X6#zDQ z#sXxSqqo)Jm1K~EACCg$kyoWcZSb$iM*u8c0g&8sS^cO|qOM_iQW*lMjHQUrU&4hIlDBb@ge-3mqT*vGiG7Y@Yt z;LarzazbvF`BxQHCxw-T+P7*%4bUkP2x8Z|S_uQPqiYw6R|oYN$Kan#G)2_}<#%K( ziqQ#-0IHizw2so(lfHbr%7QH^PN})mQMQ}N< z*~9R6em>o&JkBYkn`m7xLw719GKp_lbi=_GHg`KLt-g3;Cuy9pH(;cpm2p^==0Pp7 zEUQwL8QH<3IDH2{91yCp{p<&;t(Bf7SmHl!iA z=ZcPyT^LC|pqiW2V0#*Na6uvi z>7iJ{j;DNtFhKSKq#7~CQUrFu*1%?Sh9=FdQALM{M5mfqI}~6&v|7d;R0~Au(~P+| zY0@qsV=+HskrzzcP=jZ;$A=3s3I}xuH1X5#jX0t?6{G<)BkT@i@J1zeRF%MyNlu#7fM*q`g9_8Vo%LsvZ%2aapH6k0zbQQ5lq@Al01yX+aY6YWK%gPq@RcYWoHJ& zFyd2oC9#`Un zZNwx2)ksX~lOB1&r$$%i*We=tI3(=*;SB+2lt(~X2vj23`jldFqIez^%3x)2u!6&D zy5(^MQl}|uQqNx$Oe>K@om@JenBW2EcmU4=3y+e|vP>3{&of?zTSGrqW5NgkPf%4C zY;GfdP8moXLZMf@LBJ=f!O?jnGN={hQ7FjmUt~0}EyCBF`J=;q>C-$XnI{P#vW&~X zYE`hv8c4`EqA(iR3!tzZq6K3ikm3bAGJ?4bqUY!}rGp=-8y0bwNED91v#gaA9>OFu zLM*wMRq*J1s?i0`O9={9{X<~JsAQ|AhzAkgHPROWrzMvzy z!sn95($upZ!JN;E7H-K~1yfC}1^hr16f+8)mM@oV zt`KwX+vxEtB+a*YG7?%kBNLR(5+{Ll6(Y&Gg!vH86sSZAk0>sk*U~Pyb)q3DKjxvV z9C%*XZBw?{cyU6O^ll8X=F|zotEc_AcE=j#r>UWuWj5w|4DXm(R0y*oV-haZ2fiW1 zfdp)DxGOPaS1_}b+lr6+09AKP%(%D;&#-YcE=C($1Vs~PwDKAVxt(z*7 z6Z25FEcnT_m9Qp`ci9m!*O{tj;%<*5*tD>Lupf4Pcn%K`1DGjF#j+5I7!ndtS^2{c zEk;@?u*4y-s#+WO_GGQt)+P*yGOG`NHieu`lY&m$GgmN}W$S3TmVL86;L%L$NcGq@ zA{xDcAaP&D5F(+=V;D9)8D#mzN_^_Agv|WgI4V-9vLPWd&BtusdI?aDn&N|TB>Q+k zIQyguQx9sx?Jjrx-Mq2b=7x1jgl6|(`XRlGc-lo|z|N^taqG@*qpxgYolAQir0L1v$}l+Lm(2iyCQp0O*P%fs&e}5+_;<6kQ8A)+b<+(}5|5 zjLbs8YC5^XRK)i5cV;|tYkTBAB|U@JR@kWILO&%GwNmsoL7r?&((i~NfMQqI5>%5< zS{XdDi?m(NsOm?lja8PZ>ZB>H;K6*VM*!SdN?BHxN}no9kdp>|8nd*pEw z?8g-`s3=*3=9GzKRcG45pEVX^O~`WL5cx62Fw(keVJ9oO=o`YYi~(~}7>pwt0LK9U z#`D^a8%5<%(Shlr}{Z zBhng{+=MA7SO^d8L{U7tBiYk2LGnz6fT9&6?EN@+ZcY@3q1q(`r#9P)X_(8PKm5d8 zjuOONrwGmfwYfa5;T!ZE5_QRi8@jneN}s(<9&pS7RrtdMnb3UhAEVeJX{3 za2AM+DPa?nMf>YF)ralk=Alf<=@0FJS}{0un+xnfG`m94%Lr10Yz`p6ju;Y~KH`at zevroQM%vAg^tbTgwJV(jJJzXvreG74T~0|I2^8PMd55kToVXSD zDtMK=#5)6~lKuY)dmFes%d&smUDtJ7*LB`65HI6Wc8>{Tn*y?A$ciBryG5JGaw1EH ztQg`G5*8wRM8rfQMOu$UR78|SD>oi`TErY87UC=->LJ2HoQa5vggFrn34hWE z!TiYqnEj1AE;}Pnkvv37K0#IyW-C5x*+WPK{E(z9XGwvx#l7`STx3=QD8;{+=VLM^L|32gwxn32IrxP5!CoFj9PB?}I$A?+C zw*qG?co!V8T^9x)1PBY>gV(=?;SI2192)N%3kD5bUV#IMfMmRd3-mZIz6bw~66C`8 z=skO~KN80~W5Y0`j1R`04!MVj1C!VeL@?YQ!-g3);h^Jk5`4lQucHOcVCIRpBjfSf zVW_z<;(dqevwIJMfadN!!Ej^Z*nZrNX+22p0gt#M5VmJ8u6+a}-c@_~<)5Gc;vk1m z(u~*Xal*qJ&;Eo9{xG>MS>V$Iz zOm;0U2(kstz=z#A4J3~TAK3|nWfqWM_(~`C1%Y7Z4R5=KbP<5(((Eq-NgoylGLJo3 zY~b@3LJMP5Lcz;yIUii2J5d}v!zAYrIs(LBh3s-h_yHFb0AFvz6&ZM5#fg9@Ua*VY za4eV+C>Sh(1)PY&`=nvuEn#rSOoee6X#yf$kUh6tEtcEODd zW`}+7fpEf*Nw{#;U}t2Sv&;dJH?V_1Tu`V$sCny2?+Qa8lmw!3$YAVj!^9*&5!rxP zxV~{p^2bzAVrU->sJ_aNFQVYC4-!ErE-(J5x*Nay5FEKQq^h6%%! zvH#acaTgZ07xfsMVSF15_uH;f;lkqgBjR2hGiPzJTiA6nIXpm|pDKN>XMFnwb}2me z!Y!6C1cz85J-oYtrH5*Fl`L5n7|Rb=R!|ur5tsp7ZfxbJ1a{@Rh!zO(aR}*!+c9k9 z^1&b9)RQL24}UB_WE>G;hJ@k3zOwM(_0f+MH69QXJ9E=TqlAs?h5T^2GBe5sqcY%{ z4`}j@JLFk8GAnyzOz;H{y!(7^9TH1SvBHGm1iLh$9MQF|OK;~@G6satX@Cpdb_LTcD2Rj`5jQB5 z9$FjZ6oz6%$8;4^V;U?)l?*2@#R&G<3kmX*4eZ51nG_q?iF3qRlA+crDYprP=1_b2 z-Q_GKPL)N%386jUfm+UtqN?x*eu^NUxY!ww+R0R;NR$v%Fcnq_QAS~!920Gu0fG%f zx6V}oK383{|KQ;;a0rrMns0aQ#eX^D3up)me@>EF<<1<@nGOTT=0BMZ_XD_a4bt2$ zIRwjOH`*(zL704P3(6R7h>4=cds5?f1~VB|kriL);aI+qK5l;DLf2X?m(l}ScyrZZ z+TaIdQ18&N5DuiI;6O7TucbzG+%v=$H-cg|jqr$yl1A=OTR?(a5h5TDoFE7>OUwl%zy>>Y-#1SQ49xKheO0xjk~5FF8@Sopyori65ZaYGJYnLb>& zigGF}L*{{d8ji<&aYxFe@slD&E;($N;ss0vI96#Q6kZ9;WI%NNi!dl@{vqq!G|~GZ zpd=v?oO2rBgRd8YPY4R4QTzoXB3Bep0mr*=rxTQ6P=Z#3m>Bc2_Em+0o5JiU1tTNi z!P18l*M1&U@dXEg+_5)T8;;EtT4tRSfFn2xmL4)GxN(XcjI+Td5QY&dY;PDl%EpTk zf>VQzgPH(g-?(2&gm0;;3JM-j84#C~36{~2;V_5?gC2y);#C2{SV#zk=sdV_Ge!ovS}<_e58y|@g;S6sWWcBk z)@7-()Rf+a5YQ?x0`mvM)`uUiDzbc7gpzMnCD2O*h;m-QIa~PyIitA2BAdDNnR{u5 zMFwH{Fg1Q6=8bruPsZ(CG&S5QMQ@A}ff^AeD-TPJ^ULWmCB+|;lB^ zk9?Roe#is=kRZas8;NsO2rw8H$Ug|M3yT0LA~4(`D43Z6M8s@h7ZYcmpdoWbmHCy@ z2W60z976)E)!>PMG7zN5LulX+(LVZ-A_F0$g{1ZzM7F>PB6FjcZZP4?(cvUNG7gK4 zX~6>Z1wN8h2nhlCi%*z*av|>7FO8^&9Et_PAA~|m@m5n9-&ozb6FbQ5~&+QK0 ziWZ9tw86n{{=p#_*G<{t#+o|2J9)x_5AL%vA^dUF9eCgir+D_1COB-}5)1}+^Ta6lDn#A61&3fb z=Gq^7{NJCg!Pu7x#zq~O03%z1x5fwWKmz!SXWsF_f1ug16Cka4eYbLU^KRf88@TMf z1F<+BerRf`bf+ z>s2f?b_;wVPZl8WdLzP4nI?NeX6!7TxY$^Pcx5JBVBRXlwPh^a;lY8K zcs!(lI9PgegAz!BI6|`lM~eA!9*5n7iz4jI@_`>qg00{XV-{G$5DhN~ix~hF`96Py z0CgFSIl@1^mw)&VEl7!3#ldU-U}p_3EN6sbCL}{L9{;~E=@-mhI7Wkb=31s8{dY4D zELF}C*Nt7O+VDR^;cy7a6z~s8I1U%4vxEE2j0QE@E>#l*p}m}&wpFC?!^-sz{@9g;{7P-Rk>pA z#2>l{G<%d5|KYp$IuPRDUM|Ef!3SYHgdaXK1A7n{eG$*hWQKPI?`OZm_(5cQ*}OOS zP6m8#RDiyln;CP*Y|5n2{lD|gLNf7DZ=iE$7e=(uMq2~d;nng9xQI5mScsBs~TU| z;kE%Arx8|6wFZ&C3YmwfUH*7^dNa#w3!c=BqPTZ;Bf{{?9WTSn-D3cmvrd94%)>bbSFA_u zx(ctj!3Rn%rb4`Q0-cc`*X_byH`EY#aP4HJfMYTN{$dzsH3mus6cg49I1I*qHe(J3 z{fHg-Bcrp{1FCSs=+6-Yv3Kr%SO!8YCb=if`Z2dVOgQn}#cg*dDs*r>+BL6EqT!;e zln?0D>wj+cVH<{)y*uEKFIpT> zX;h<8tw!}4HE489qb5x!J?}KVNG%$*YAAtV>fpEnbdWp@4Y}?stU0Ycy8Lru`$jk) ze~eCO)UDAeje0fe)8O{MG@#L-MrSn|)@W3tF^wje4uSsUbMzwMoP?$D4aa2QfY zrc)@qGPP|WKXg{eWM&vCLZ?U_u44oA;wHV_bNn%F_l^yl^lja`J8Z)Sv4ivt8#Y|< zLEytaF`AoZAA5EKwVZrbr-JThbvP!vEOyipCpc__F5t9%a@&p#mm>D17HtTw-zkD0 z-UbNXTqg8$r{{hf9P^0KZ|k(&GaqOhblOm3=vZm*&uQg^{__pBJK@y-vTo_w zFOv214M9TBd|`vWm`$E~gmVw*qq@&@d&0EFJM~8&4e9&G)-RS7-TI$tN51ss!(T4H zwdjjSzEE-N#dqFTk$wS-V$vwsOi?<;=m9zQK#tqjEGwge;&d??9{+*NKbQi9H$U!(CL^i_N6;V$Mg`C=<;LE)q6vzNv9T_ zTA5($lOWixQ->_oq;%)@un;<~(+OR)M#F#bG=)A+-5hif1xu%N>gBre8?FQy7WL^g zpwpmEXSs&VY3Ww3O~X2kN_vsyG^W#pPLsO0LTCpCn#4Jsrq?o1hYZZ>G^f*oPUqKL zbDj~jq|>r4G7i$JPMRSgPtzcmK|uzE8Wdqrq(M;z#Tc~Rpg4mP4N5X7#R%E3fl>`h zHz>oPOoR3rBG*mX1|2X&rbW31DESPHv_$gUSu6G^olz zPG?V2jX|{r)f?1cu*il`>s8~KLZKfsLdc*dLnK}9>?kus0(4H8A!vy$Ybh=MUIgNd z3=3*C#J)=d_Qf#)qKOdhdR6dr>!MKOYS!zj*~yZgwfI?VJMj_da@q~*V15tRZPgpM z>Q1ZH4%g!bodAEk<+K?9t( z*gtSn9%SPJcOEL69)vi%mXo$Hm-iJh>=%^>X_y1XfpzD`YeJkK{v5wvEkwkj{Mn~% z(FJN_kYc7*zY*D!&BoV@DuE*P)1=`XCsY)8y8}s8|5-T4v?HKFbj}cSxdHc~mxMR- zGMYAM)}T3q7S`Cwe^UroJky@oIJt2JMMk^7ae2?D(4QH!WY97*viJ@d5jD|Xi&hQN zh)g0Ei9)W{ISuf0225@?K}4ZM5#-cse_ZPzJHuSg!BBWc5=D{sRk6BOPh+3ulJi}} zvSXgg6HiPVFXNCDPk|0cZImpLWktPvun!vn6#&kASBea%`bzE^}3V}CQm z3Dt@YO8TM+18SQCZ4HnxB2O% zRHAfpB1~O1%rOcTqT%BrCZ8+L$hbZ}E(JgB292?&WbNbnf5M!)1$9fPw%{rF(A>P< zY(}=YWL@3oPTJU&ixSM#2DgGt(X(KQGDtj3nIy&zITQL`&d~$t)QFQcKi(OH-i;vc z6q7ro;$H=_)%dcY1Cr7{R8S!+e&ebpf;#N_9Yzwd`Q1IEb^%H`;lXkK|FDhr%k zZ4QM~fVkU|_q)95mx*pP9U%v+qMEg`%6S>%Yo<2ob{0G+^+NLgLzEldmdn_+;}MX* zAq0GYkO(lHXJ#W_1APzX*YO_koFRJrB7MAoiCkz}U00Kx8J;V$rRWn7Enh zi5dv{bY!s1+i})Os%!t6r3E zsy-o>-CWSz7Oh_GkL(+?Q6zo>bjr_286=&i-ZNmXemKBu^KZGtRo$Dpnww<)yplo@ zBefHCD5;*;qH{h5F?C%}H*pi!b@7b=k*)(SXB9;Z!mcrIYod4Jarivt9u19dgJi)* zL&GLLxxqd#CE~dDs`M5Sf%`a6t{V|_oah9h>@VY9d`{!~P2J=aYZy$|<8)!jJw?<@ zPP%bx2x^9uVw=O#M>?GsY5|^R_PYWm&u1kIkzVRss~-s{AtxkkYZC$-Uba6Q3(cqyGhR~pyd|=e&GjPG)CTx%Y=C~O^}$2_QvX(cYB}cHE8m~jOKhy z7cD+IhY((xX3?xpq606d`?xZX>_jm*=h4QwEXt#t>_;|i2&9m;p0^>SHM>?4Iml=p zM}Uyg{OT%{1dz>sRdbGA!c}_GsPc)1gD?)#fGZ2SuD&g^OH6ucPBwyek7zn1wxfH6 zLdR-QP_wr;FobRT`1D&BU{DzOZZ@me20`&?rApjbU9x<5yn z2~w$#xm)z;iV+^SYEM(^Q)HUXq{|6$CS2>_)TQJkJ_m5XOy6ZHdV>>JTY~vLE7{ ze+v9pT<&uEwn74`SWDLhTlXcGNaTYQG+SA z=W$BK`}r9mHO%2gHjg$Ey7NG1(vK1Qm`P2@9@=$=tKm`(64c@?)~Ll4b3QlPXNEbE zFA8J0oz!m3jI#>#Kg!@s8<#gyt4Zygfznj2cjli^8qVEUhM+sXgw8IB$tz*Hkrw7Q z>1{bQ2dKM=7GB+?dk)h1`9OKBtoKj}H@Fb~*L2`qz^ej9r3$Tc-88grn);H9I!rol z(h1J|F!XK(f-mVeg0mfa@yN{22*;kH|h)xn>6}i z8;-pmQt;hCq3^CqVO>BY>!xZJRneCym9zO38U(|}owPblV0`=Y* zpwqlAxkZ@3d``Z$Nl&}cOqv#xen{qCv;F1ukt>Dd$klr~c+A)w#3NT6_oGwX=r`%5 z|1z`xj$ZzKa~~k~-)1Bn^DnVdr^SGcV5L8i0~}0UF!lTd+|K{lI{yMETbPKTxpv|? z6qJH41tW*-lJ_?0J-67!3tKh^UVz~;|%*DPYIF{c`fEmsIN z{MP+khl*Ej?qq7o?+Yf^cbH6z?M1TR(XIInT7Ig#;7E)%8&|O#DXckk>&iiou$p%x zxv6*bdL%cqqz}KfNw0oa9|fenr;h>p-_s}Fa>}(&hd3v*F?%^VXQOqe?J~|`vak0I zQt#v3#EtYBK#q|C$XC#uYqX+r4&7o5&VkP7jrw`+Lne*c&71V`LSuLV)>J*4G&!qj zyAXA;;wwfT>d|7gk^MT_z}JjoKvBI>0;v1CQ3j}Z&?tYMT*xVwT4Y_Azl2scxSb#V z1&nomf@aaZEbgb}c?#k{^ZR*_Qk_UYnvd*EW1ilm=akCEvvQP{P!V(fQ$paYCulHzae4qn=}bq*MCVc9+6O_!1ykmNAk@*)CX2OPm_t-Hlo1)1Zl9% z_frE}OxjsG1~5iw3DW8L6O}-6MSrF;K#zjh=coih{C}m0=}mg0g6iif?@g|5%{Q-U zf#GFqon-#HX?)$ZxNb7;;M`~SQOjvG+-WL*7p3zu6~2iyUZqeppvBi{5PZkJNoSGp z$UmtBeid(1`3xd%KSR|R_SY2KbE}LGHfMA9P>4q3`Is38;mkPZ9Cx7?n^a&DxX%OJL*VCouk6}Itf zB~rx7ptW^)$Mb&FXBFp5nL(0H4KoO{ha^tp`>m;(Ug8>T1DjTpZ)YtVu8ylyrD z7T+{m0Qt+ZQ!`d%rAT zRyxux{e+bP=-Ok=!EwCUssSYYhXl`;tnHBgNVzqLAZ?Xa2Xeh~w{;v)darc?F!WWc z8<6~K8AO! zTtt{!vZ}adu2{zqFZtgR{2y2munie@D|nkB`vl6aS=a@TWlp%A0cg9>?gbko7uj*B zwQZ4h25d75!lUdC#Pi444Io{&!#0sn+9eX2}-f2;a3uj$L$7;SiS*!0>qLPWGQG?Fg|E^BYN|Yy$?bBZ`fn6pix1gTSja2 zy=iB&comGlWuHS5zW40|FLT4=v5TAh+{e%wV?;Mn8jls{G4Lg)h{=BMA9K75&Kspfhlw-R%{Y2N?IT4V(-Op3Jv)0 za%9SrgI)>`dX!>ODuQ8{HA6k$(?#TA(DCzP09xUr`dLUJwnM^vho1Qka(Y~!ou+gq zt;WGRtW#%LArwxT+`lJxBCg0Qa>`vX#%5m1+sDq~LFo3Klday}$XsBw>cC`@<=7Lf zLAuu&B`9%EwsCA8K|X7oLeeWY8`EH9<&aT^DjEKHV_=RWbn)0URchp-HW>Fv70y!w z6^^o{W}Ouc@8+Kw?PxtkPZ=kc=>V3aEh$b+HN!vdLb**DHRu$2UND+3K=-rwg3)$? z8}szX!kmFCA*?(V92!9K^)4zvsU;tx^DGpG!1$H_q5Ah(&>a5)m4NArLJ9px0D*vY z2jJcFWvLccDD7~ng7(b@ysK|^Q6Z9O{u-4*26bv+^Bu$Z2GLa?f#?Ve7kUwoV=RE6 zH5D@a4$jLv)PQ=i_#TC#nvN{fC~`LbJ`HoPw@NY7&a7Y8ojE)pMAK~gJJNm19d%)J zqntMuKTgfkkp2|4Re)f)Fl#UvHG9o54l37d7VqMeHkuP?G``K|>mT7+q?lD9ts?;W$ztM~cqRn^ma& zSx3xD9^!ltNQJ_$29CBbo3jYoR%up3NF#Tf$59+@^=1Y$kb8zo8^A!?oY@LlbSlXI zrkrrb`p{k9?S+#KVBw8Kdr!&bK zfIQ~a&@rTjj{MJ9OJHY4LF_@R9Vz8}&Wb_wIt3MZRti#R%(p7h9faRvRRN5{Rt

    iS$A5!pw*)w_NdkJ4@9f7S^@L-TJ3hT@ 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 iev(!g=xL0pfhMYz1v*O_%3D7%Ey`RS66Ps^ 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�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 z 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�+^$_oG zq9nX5%`A73z(LGGjBzu>S2WjsR;t;NJkB=Dy(CjDR*S~%kbrF*1Uc6nK9N@`Xi=E) zqoiZ8Ssozq6~l^w0#=Q6-A|-rrCA;(k=zScyHCcQ|bAr=s{{CpZO z&P`@{l+*@{14d&gB-jw;=;Vb{n^~SDk!|C)(RheVjQONQk6Ct-1lDI0jK?8<6eOG^ z!iC?bp+NCRr)lTi9*j!^|`J-SJWp?;wh2#nB{%S_uu?YqvkPhMh5+ZexZ{p zFc15VS#DT?06Hh>vCtZecd$;J!4I0{i{$>s8^-v@JfFhuLjE5jZF3)BC<9CGzhQA_ zWakY$w>8^X&VEc~tPgu(?TS}$NIoNXt>C$@+1D78l;HH;iITxpK4);xGDLFlYfMFr zjzu}_yVLt9V#mvJ&&X>evm3h`Yb^SiP@~9T;I4Y*WyNRYeG*C4r|OO89}7(o(UY0S zPg$xwBUe#?_(>&L8b$ZocPH9V{TaEIBwF>YdSm)yRRYbziC-;eU@;@9C zs>u}Br?$B75r#UQc52Yl^bmHRkt2*q+gxl6pA8iXNGM9ljQz7Hvg{MiR=tKbZn5AQ zS-_w$y1lpQHQ|Ax144cG+2A8p#?5Kn;G?)_!)gwbS`7sc98(T;$%YA|BAng@ccqFvKi?8HG49hdud@GG8i-I6XB6&yX}UVe)@L8G^$G7Js<8 z0*QtKOmnEx`(HS5!+r|O+EX29b0upptaee3rpgndDN5iI$!a;u2-W|H#rShk#QLdd zC1kVv7!}j!r5r$*Xo9N{qy@Jq%7-|2QX6q{UbrOP{{>|$Bsv)cCH8UgC=fJZ=EL+0 zW|nhH^c_q1JK^!u%HqK#II%$M35`V2~ZQ zgz`yR;^J1-PeVA(M$cV#ma38eQ4pyZ$4?FOsrn=TBb7u87Qt7vO2KMF2o&My6xA1h zIrlIptijOLT9Ao&>4sQr8t0Y7&!pZIIl&)u!3smIYyaY-m(T(YbnT;FIf zFG`70Fp5M9M(pup7F&-IC&fn57g=tS4C#W1+2ohPX44{Am88U`B}Ig= z8M*J_FqeLj!V>Y%p}0n*T~AAUo+himh(jS!p#=?NVbePhKJhp3v}*7v$BSHX;JzAq ze-*M@ITp=Np=?E56f*2Xa)OeJx)RhLCBYg#&r{-r!%yMY;S_#Hpv$)%ixXTpg+Ca3 zmiOajC=eNYl&zFtCloR~=|FJ&gj^`Mk`5vy-7H(jdxxhu*V@qT@cT#a--r;+@a+jHMi&V9l+ zFkrnN@mB-}RZKeJBDbC{?2 zW>HKr5cT~lYfF|h*YRw?uMt}_bgDWmA#^^6%!^R8>K7&y<)LIbkCgc-qpByuV!WX1 z-KyS>cz~DvljV|iygY)5el?Qtc^IS({x_8X;2z9mxr*F-b-g-c?GqvWPp}q;-MSMA zPqJJ~66@l+Xl%gN9ofh^R3wC4yo^GNY+Rm73ywMbKDkx!*Jy`&LY-r`e+Y>PZffv)?<

    KuO)CIDzm7}fhx0Ls6^Kl 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 F{tqwk*Lwf} literal 0 HcmV?d00001 diff --git a/endia/__init__.mojo b/endia/__init__.mojo new file mode 100644 index 0000000..7961b14 --- /dev/null +++ b/endia/__init__.mojo @@ -0,0 +1,6 @@ +from ._array import * +from .functional import * +from .compile import * +from .autograd import * + +# from .utils import * diff --git a/endia/_array/__init__.mojo b/endia/_array/__init__.mojo new file mode 100644 index 0000000..c75d323 --- /dev/null +++ b/endia/_array/__init__.mojo @@ -0,0 +1 @@ +from ._array import * diff --git a/endia/_array/_array.mojo b/endia/_array/_array.mojo new file mode 100644 index 0000000..dea229b --- /dev/null +++ b/endia/_array/_array.mojo @@ -0,0 +1,935 @@ +from endia.utils.aliases import dtype, nelts +from endia.utils import ( + ArrayShape, + ShapeNode, + float_to_string, + extract_array, + zero_grad_rec, + reset_node_id_recursive, + InplaceInfo, + build_out_string, + compute_shape, +) +from endia.compile import FxGraph +from endia.functional import * +from endia.functional._utils import execute_copy_raw + +from memory.arc import Arc +from algorithm import vectorize, parallelize +from time import now +from random import seed, random_ui64 +import math +from python import Python + + +fn default_fwd(inout curr: Array, args: List[Array]) raises -> None: + print("Attention: Default fwd is being used!") + pass + + +fn default_vjp( + primals: List[Array], grad: Array, out: Array +) raises -> List[Array]: + print("Attention: Default vjp is being used!") + return grad + + +fn default_jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + print("Attention: Default jvp is being used!") + return tangents[0] + + +@value +struct Node(CollectionElement): + """ + Node is the central data structure representing an array in the autograd engine. It is responsible for encapsulating + all the necessary information and metadata related to an array, including its shape, data, operations, gradients, and + dependencies. + """ + + var id: Int + var name: String + var shape: Arc[ShapeNode] + var data: DTypePointer[dtype] + var is_view: Bool + var base: List[Arc[Self]] + var args: List[Arc[Self]] + var kwargs: List[Arc[Self]] + var grads: List[Arc[Self]] + var fwd: fn (inout Array, List[Array]) raises -> None + var uew: List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] + var bew: List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] + var simd_op_list: List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] + var inplace_infos: List[InplaceInfo] + var jvp: fn (List[Array], List[Array]) raises -> Array + var vjp: fn (List[Array], Array, Array) raises -> List[Array] + var requires_grad: Bool + var compute_jvp: Bool + var graph: Optional[Arc[FxGraph]] + var id_in_graph: Optional[Int] + var has_real: Bool + var has_imag: Bool + + fn __init__( + inout self, + array_shape: ArrayShape, + requires_grad: Bool = False, + is_complex: Bool = False, + ): + self.id = -1 + self.name = "arg" + self.shape = array_shape.shape_node + var true_size = array_shape.size() if not is_complex else 2 * array_shape.size() + self.data = DTypePointer[dtype].alloc(true_size) + memset_zero(self.data, true_size) + self.is_view = False + self.base = List[Arc[Node]]() + self.args = List[Arc[Self]]() + self.kwargs = List[Arc[Self]]() + self.grads = List[Arc[Self]]() + self.fwd = default_fwd + self.uew = List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ]() + self.bew = List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ]() + self.inplace_infos = List[InplaceInfo]() + self.jvp = default_jvp + self.vjp = default_vjp + self.simd_op_list = List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ]() + self.requires_grad = requires_grad + self.compute_jvp = False + self.graph = None + self.id_in_graph = None + self.has_real = True + self.has_imag = is_complex + + fn __del__(owned self): + # print("Node __del__") + self.data.free() + + +############################################################################################################### +# Array +############################################################################################################### +@value +struct Array(CollectionElement, Stringable): + """ + Array is the primary data structure in the autograd engine, providing a user-friendly interface for working with arrays. + It serves as a wrapper around the Node struct, which encapsulates the array's data, shape, gradients, and other metadata. + """ + + var node: Arc[Node] + + fn __init__( + inout self, + shape: List[Int], + requires_grad: Bool = False, + is_complex: Bool = False, + ): + self.node = Arc(Node(shape, requires_grad, is_complex)) + + fn __init__(inout self, array_shape: ArrayShape): + self.node = Arc[Node](Node(array_shape.shape_node)) + + fn __copyinit__(inout self, other: Self): + self.node = other.node + + fn __moveinit__(inout self, owned other: Self): + self.node = other.node^ + + fn __init__(inout self, node: Arc[Node]): + self.node = node + + fn __init__( + inout self, input_string: String, requires_grad: Bool = False + ) raises: + self = extract_array(input_string) + self.requires_grad_(requires_grad) + + fn id(self) -> Int: + return self.node[].id + + fn id_(inout self, id: Int): + self.node[].id = id + + fn array_shape(self) raises -> ArrayShape: + return ArrayShape(self.node[].shape) + + fn array_shape_(inout self, shape: ArrayShape): + self.node[].shape[].shape = shape.shape_node[].shape + self.node[].shape[].stride = shape.shape_node[].stride + self.node[].shape[].storage_offset = shape.shape_node[].storage_offset + self.node[].shape[].ndim = shape.shape_node[].ndim + self.node[].shape[].size = shape.shape_node[].size + self.node[].shape[].is_computed = shape.shape_node[].is_computed + + fn is_computed(self) -> Bool: + return self.node[].shape[].is_computed + + fn is_computed_(inout self, is_computed: Bool): + self.node[].shape[].is_computed = is_computed + + fn is_graph_node_computed(self) raises -> Bool: + if self.has_fxgraph(): + var graph = self.graph() + var id_in_graph = self.id_in_graph() + return graph[].trace[id_in_graph].is_computed + return False + + fn is_graph_node_computed_(inout self, is_computed: Bool) raises: + if self.has_fxgraph(): + var graph = self.graph() + var id_in_graph = self.id_in_graph() + graph[].trace[id_in_graph].is_computed = is_computed + + fn postpone_as_grpah_output(inout self) raises: + if self.has_fxgraph(): + var graph = self.graph() + var id_in_graph = self.id_in_graph() + var posponed_outputs = graph[].postponed_outputs + if not id_in_graph in posponed_outputs: + graph[].postponed_outputs.append(id_in_graph) + + fn args(self) -> List[Array]: + var res = List[Array]() + for arg in self.node[].args: + res.append(Array(arg[])) + return res + + fn args_(inout self, args: List[Array]): + self.node[].args.clear() + for arg in args: + self.node[].args.append(arg[].node) + + fn clear_args(inout self): + self.node[].args.clear() + self.node[].shape[].args.clear() + + fn remove_grad(inout self): + self.node[].grads.clear() + + fn kwargs(self) -> List[Array]: + var res = List[Array]() + for arg in self.node[].kwargs: + res.append(Array(arg[])) + return res + + fn kwargs_(inout self, kwargs: List[Array]): + for arg in kwargs: + self.node[].kwargs.append(arg[].node) + + fn id_in_graph_(inout self, id_in_graph: Int): + self.node[].id_in_graph = id_in_graph + + fn id_in_graph(self) -> Int: + if self.node[].id_in_graph: + var id = self.node[].id_in_graph + return id.unsafe_take() + return -1 + + fn graph(self) raises -> Arc[FxGraph]: + if not self.has_fxgraph(): + raise "Error: No graph set for this node" + var graph_opt = self.node[].graph + return graph_opt.unsafe_take() + + fn data_(inout self, owned data_ptr: DTypePointer[dtype]): + self.node[].data.free() + self.node[].data = data_ptr + + fn graph_(inout self, graph: Arc[FxGraph]): + self.node[].graph = graph + + fn has_fxgraph(self) -> Bool: + return self.node[].graph and self.node[].id_in_graph + + fn is_breakpoint(self) raises -> Bool: + if self.has_fxgraph(): + var graph = self.graph() + var id_in_graph = self.id_in_graph() + return graph[].trace[id_in_graph].is_breakpoint + return False + + fn is_breakpoint_(inout self, is_breakpoint: Bool) raises: + if self.has_fxgraph(): + var graph = self.graph() + var id_in_graph = self.id_in_graph() + graph[].trace[id_in_graph].is_breakpoint = is_breakpoint + + fn item(self, idx: Int) raises -> Array: + var res = Array(1) + + if self.has_fxgraph(): + # if the curretn node points to a valid graph we are able to compute the current node with a compiled subgraph + var graph = self.graph() + var id_in_graph = self.id_in_graph() + var graph_node = graph[].trace[id_in_graph] + var array_in_graph = graph_node.array_in_graph + array_in_graph.postpone_as_grpah_output() + # graph[].postponed_outputs.append(id_in_graph) + + if not graph_node.is_computed: + var array_in_graph = self.graph_dual() + var subgraph: Arc[FxSubgraph] + if not graph_node.sub_graph: + var compile_with_MAX = graph[].compile_with_MAX + subgraph = graph[].subgraph(compile_with_MAX) + graph[].trace[id_in_graph].sub_graph = subgraph + else: + subgraph = graph_node.subgraph() + + subgraph[].execute() + # print("\nFxSubgraph:") + # subgraph.print() + res.store(0, array_in_graph.load(idx)) + + graph[].trace[id_in_graph].is_computed = True + graph[].trace[id_in_graph].is_breakpoint = True + return res + else: + res.store(0, 0) + return res + + res.store(0, self.load(idx)) + return res + + fn setup_array_shape(inout self, array_shape: ArrayShape) raises: + self.node[].shape = array_shape.shape_node + + fn uew( + self, + ) -> List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ]: + return self.node[].uew + + fn bew( + self, + ) -> List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ]: + return self.node[].bew + + fn inplace_infos(self) -> List[InplaceInfo]: + return self.node[].inplace_infos + + fn append_arg(inout self, arg: Array): + self.node[].args.append(arg.node) + + fn append_inplace_info(inout self, inplace_info: InplaceInfo): + self.node[].inplace_infos.append(inplace_info) + + fn append_uew( + inout self, + uew: fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ], + ): + self.node[].uew.append(uew) + + fn append_bew( + inout self, + bew: fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ], + ): + self.node[].bew.append(bew) + + fn shape(self) raises -> List[Int]: + var array_shape = self.array_shape() + compute_shape(array_shape, self.requires_grad() or self.has_fxgraph()) + return array_shape.shape() + + fn stride(self) raises -> List[Int]: + var array_shape = self.array_shape() + compute_shape(array_shape, self.requires_grad() or self.has_fxgraph()) + return array_shape.stride() + + fn storage_offset(self) raises -> Int: + var array_shape = self.array_shape() + compute_shape(array_shape, self.requires_grad() or self.has_fxgraph()) + return array_shape.storage_offset() + + fn ndim(self) raises -> Int: + var array_shape = self.array_shape() + compute_shape(array_shape, self.requires_grad() or self.has_fxgraph()) + return array_shape.ndim() + + fn size(self) raises -> Int: + var array_shape = self.array_shape() + compute_shape(array_shape, self.requires_grad() or self.has_fxgraph()) + return array_shape.size() + + fn is_view(self) -> Bool: + return self.node[].is_view + + fn is_view_(inout self, is_view: Bool): + self.node[].is_view = is_view + + fn base_(inout self, base: Array): + self.node[].base.clear() + self.node[].base.append(base.node) + + fn base(self) -> Array: + if self.is_view(): + return Array(self.node[].base[0]).base() + return self + + fn requires_grad(self) -> Bool: + return self.node[].requires_grad + + fn requires_grad_(inout self, requires_grad: Bool): + self.node[].requires_grad = requires_grad + + fn has_real(self) -> Bool: + return self.node[].has_real + + fn has_real_(inout self, has_real: Bool): + self.node[].has_real = has_real + + fn has_imag(self) -> Bool: + return self.node[].has_imag + + fn has_imag_(inout self, has_imag: Bool): + self.node[].has_imag = has_imag + + fn is_complex(self) -> Bool: + return self.has_real() and self.has_imag() + + fn is_complex_(inout self, is_complex: Bool): + self.has_real_(True) + self.has_imag_(is_complex) + + fn data(self) -> DTypePointer[dtype]: + if self.is_view(): + return self.base().node[].data + return self.node[].data + + fn real_idx(self, idx: Int) -> Int: + if self.is_complex(): + return idx * 2 + return idx + + fn imag_idx(self, idx: Int) -> Int: + if self.is_complex(): + return idx * 2 + 1 + return idx + + fn load[width: Int = 1](self, idx: Int) -> SIMD[dtype, width]: + if self.is_view(): + var nd_idx = compute_nd_index(idx, self.node[].shape[].shape) + var base_idx = compute_storage_offset( + nd_idx, + self.node[].shape[].stride, + self.node[].shape[].storage_offset, + ) + var base = self.node[].base[0] + return base[].data.load[width=width](self.real_idx(base_idx)) + else: + return self.data().load[width=width](self.real_idx(idx)) + + fn store[ + width: Int = 1 + ](inout self, idx: Int, data: SIMD[dtype, width]) -> None: + if self.is_view(): + var nd_idx = compute_nd_index(idx, self.node[].shape[].shape) + var base_idx = compute_storage_offset( + nd_idx, + self.node[].shape[].stride, + self.node[].shape[].storage_offset, + ) + var base = self.node[].base[0] + base[].data.store[width=width](self.real_idx(base_idx), data) + else: + return self.data().store[width=width](self.real_idx(idx), data) + + fn load_imag[width: Int = 1](self, idx: Int) -> SIMD[dtype, width]: + if self.is_view(): + var nd_idx = compute_nd_index(idx, self.node[].shape[].shape) + var base_idx = compute_storage_offset( + nd_idx, + self.node[].shape[].stride, + self.node[].shape[].storage_offset, + ) + var base = self.node[].base[0] + return base[].data.load[width=width](self.imag_idx(base_idx)) + else: + return self.data().load[width=width](self.imag_idx(idx)) + + fn store_imag[ + width: Int = 1 + ](inout self, idx: Int, data: SIMD[dtype, width]) -> None: + if self.is_view(): + var nd_idx = compute_nd_index(idx, self.node[].shape[].shape) + var base_idx = compute_storage_offset( + nd_idx, + self.node[].shape[].stride, + self.node[].shape[].storage_offset, + ) + var base = self.node[].base[0] + base[].data.store[width=width](self.imag_idx(base_idx), data) + else: + return self.data().store[width=width](self.imag_idx(idx), data) + + fn load_complex[ + width: Int = 1 + ](self, idx: Int) -> Tuple[ + SIMD[dtype, 2 * width // 2], SIMD[dtype, 2 * width // 2] + ]: + if self.is_view(): + var nd_idx = compute_nd_index(idx, self.node[].shape[].shape) + var base_idx = compute_storage_offset( + nd_idx, + self.node[].shape[].stride, + self.node[].shape[].storage_offset, + ) + var base = self.node[].base[0] + var res_deinterleaved = base[].data.load[width = 2 * width]( + self.real_idx(base_idx) + ).deinterleave() + return (res_deinterleaved[0], res_deinterleaved[1]) + else: + var res_deinterleaved = self.data().load[width = 2 * width]( + self.real_idx(idx) + ).deinterleave() + return (res_deinterleaved[0], res_deinterleaved[1]) + + fn store_complex[ + width: Int = 1 + ]( + inout self, idx: Int, real: SIMD[dtype, width], imag: SIMD[dtype, width] + ) raises -> None: + if self.is_view(): + var nd_idx = compute_nd_index(idx, self.shape()) + var base_idx = compute_storage_offset( + nd_idx, self.stride(), self.storage_offset() + ) + var base = self.node[].base[0] + base[].data.store[width = 2 * width]( + self.real_idx(base_idx), real.interleave(imag) + ) + else: + return self.data().store[width = 2 * width]( + self.real_idx(idx), real.interleave(imag) + ) + + fn compute_jvp(self) -> Bool: + return self.node[].compute_jvp + + fn set_compute_jvp(inout self, compute_jvp: Bool): + self.node[].compute_jvp = compute_jvp + + fn set_fwd( + inout self, + fwd: fn (inout Array, List[Array]) raises -> None, + ): + self.node[].fwd = fwd + + fn fwd( + self, + ) raises -> fn (inout Array, List[Array]) raises -> None: + # var fwd_opt = self.node[].fwd + # if fwd_opt: + # var fwd = fwd_opt.unsafe_take() + # return fwd + # raise "Error: No FWD set for this node" + return self.node[].fwd + + fn jvp_( + inout self, + jvp: fn (List[Array], List[Array]) raises -> Array, + ): + self.node[].jvp = jvp + + fn jvp( + self, + ) raises -> fn (List[Array], List[Array]) raises -> Array: + # if not self.node[].jvp: + # raise "Error: No JVP set for this node" + # var jvp = self.node[].jvp + # return jvp.unsafe_take() + return self.node[].jvp + + fn vjp_( + inout self, + vjp: fn (List[Array], Array, Array) raises -> List[Array], + ): + self.node[].vjp = vjp + + fn vjp( + self, + ) raises -> fn (List[Array], Array, Array) raises -> List[Array]: + # if not self.node[].vjp: + # raise "Error: No VJP set for this node" + # var vjp = self.node[].vjp + # return vjp.unsafe_take() + return self.node[].vjp + + fn has_grad(self) -> Bool: + return len(self.node[].grads) > 0 + + fn grad_(inout self, grad: Array): + self.node[].grads.clear() + self.node[].grads.append(grad.node) + + fn grad(self) raises -> Array: + if not self.has_grad(): + return Array(self.shape()) + return Array(self.node[].grads[0]) + + fn set_name(inout self, name: String): + self.node[].name = name + + fn name(self) -> String: + return self.node[].name + + fn execute_fwd(inout self) raises: + var array_shape = self.array_shape() + array_shape.execute_fwd(array_shape.args()) + # if self.node[].fwd: + var args = self.args() + # var kwargs = self.kwargs() + var array_copy = Array(self.node) + self.fwd()(array_copy, args) + if self.compute_jvp(): + var jvp = self.jvp() + var primals = self.args() + var tangents = List[Array]() + for arg in primals: + tangents.append(arg[].grad()) + self.grad_(jvp(primals, tangents)) + + fn __str__(self) -> String: + var storage_offset = "" + var out: String = "" + out += storage_offset + "Array(" + var idx = 0 + var dim = 0 + var indent = " " + build_out_string(self, out, idx, dim, indent) + out += ", shape=(" + var ndim = self.node[].shape[].ndim + var shape = self.node[].shape[].shape + var stride = self.node[].shape[].stride + for i in range(ndim): + out += str(shape[i]) + out += ", " if i < ndim - 1 else "" + out += "), stride: (" + for i in range(ndim): + out += str(stride[i]) + out += "x" if i < ndim - 1 else "" + out += "), storage_offset: " + str(self.node[].shape[].storage_offset) + out += ", dtype=" + str(dtype) + ")" + return out + + fn execute_fwds( + inout self, + ) raises: + if not self.node[].simd_op_list: + return + + var ops = self.node[].simd_op_list + + var size = self.size() + var simd_end = size - nelts[dtype]() + var normal_start = (size // (nelts[dtype]())) * nelts[dtype]() + + for n in range(0, simd_end, nelts[dtype]()): + var simd_args = self.load[nelts[dtype]() * 2 // 2](n) + for op in ops: + simd_args = op[]( + simd_args, SIMD[dtype, nelts[dtype]() * 2 // 2]() + )[0] + self.store[nelts[dtype]() * 2 // 2](n, simd_args) + + var rest = SIMD[dtype, nelts[dtype]() * 2 // 2]() + for n in range(normal_start, size): + rest[n - normal_start] = self.load(n) + for op in ops: + rest = op[](rest, SIMD[dtype, nelts[dtype]() * 2 // 2]())[0] + for n in range(normal_start, size): + self.store(n, rest[n - normal_start]) + + fn graph_dual(self) raises -> Self: + if not self.has_fxgraph(): + raise "Error: No graph set for this node" + var graph = self.graph() + var graph_id = self.id_in_graph() + return graph[].trace[graph_id].array_in_graph + + fn backward(self, retain_graph: Bool = False) raises: + backward(self, retain_graph) + + fn zero_grad(inout self): + zero_grad_rec(self) + + fn T(self) raises -> Array: + if self.ndim() == 1: + return self + return permute(self, List(-1, -2)) + + fn __getitem__(self, *slices: Slice) raises -> Array: + var slices_list = List[Slice]() + for i in range(len(slices)): + slices_list.append(slices[i]) + return array_slice(self, slices_list) + + fn __add__(self, other: Array) raises -> Array: + return add(self, other) + + fn __add__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return add(self, other_array) + + fn __radd__(self, other: Array) raises -> Array: + return add(other, self) + + fn __radd__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return add(other_array, self) + + fn __iadd__(inout self, other: Array) raises: + var res = add(self, other) + execute_copy_raw( + res.data(), + self.data(), + self.array_shape(), + res.is_complex(), + ) + _ = res + + fn __iadd__(inout self, other: SIMD[dtype, 1]) raises: + self = self.__add__(other) + + fn __sub__(self, other: Array) raises -> Array: + return sub(self, other) + + fn __sub__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return sub(self, other_array) + + fn __rsub__(self, other: Array) raises -> Array: + return sub(other, self) + + fn __rsub__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return sub(other_array, self) + + fn __isub__(inout self, other: Array) raises: + var res = sub(self, other) + execute_copy_raw( + res.data(), + self.data(), + self.array_shape(), + res.is_complex(), + ) + _ = res + + fn __isub__(inout self, other: SIMD[dtype, 1]) raises: + self = self.__sub__(other) + + fn __mul__(self, other: Array) raises -> Array: + return mul(self, other) + + fn __mul__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return mul(self, other_array) + + fn __rmul__(self, other: Array) raises -> Array: + return mul(other, self) + + fn __rmul__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return mul(other_array, self) + + fn __imul__(inout self, other: Array) raises: + var res = mul(self, other) + execute_copy_raw( + res.data(), + self.data(), + self.array_shape(), + res.is_complex(), + ) + _ = res + + fn __imul__(inout self, other: SIMD[dtype, 1]) raises: + self = self.__mul__(other) + + fn __truediv__(self, other: Array) raises -> Array: + return div(self, other) + + fn __truediv__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return div(self, other_array) + + fn __rtruediv__(self, other: Array) raises -> Array: + return div(other, self) + + fn __rtruediv__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return div(other_array, self) + + fn __itruediv__(inout self, other: Array) raises: + var res = div(self, other) + execute_copy_raw( + res.data(), + self.data(), + self.array_shape(), + res.is_complex(), + ) + _ = res + + fn __itruediv__(inout self, other: SIMD[dtype, 1]) raises: + self = self.__truediv__(other) + + fn __matmul__(self, other: Array) raises -> Array: + return matmul(self, other) + + fn __rmatmul__(self, other: Array) raises -> Array: + return matmul(other, self) + + fn __neg__(self) raises -> Array: + return neg(self) + + fn __pow__(self, other: Array) raises -> Array: + return pow_to(self, other) + + fn __pow__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return pow_to(self, other_array) + + fn __rpow__(self, other: Array) raises -> Array: + return pow_to(other, self) + + fn __rpow__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return pow_to(other_array, self) + + fn __ipow__(inout self, other: Array) raises: + var res = pow_to(self, other) + execute_copy_raw( + res.data(), + self.data(), + self.array_shape(), + res.is_complex(), + ) + _ = res + + fn __ipow__(inout self, other: SIMD[dtype, 1]) raises: + self = self.__pow__(other) + + fn __ge__(self, other: Array) raises -> Array: + return greater_equal(self, other) + + fn __ge__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return greater_equal(self, other_array) + + fn __gt__(self, other: Array) raises -> Array: + return greater(self, other) + + fn __gt__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return greater(self, other_array) + + fn __le__(self, other: Array) raises -> Array: + return less_equal(self, other) + + fn __le__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return less_equal(self, other_array) + + fn __lt__(self, other: Array) raises -> Array: + return less(self, other) + + fn __lt__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return less(self, other_array) + + fn __eq__(self, other: Array) raises -> Array: + return equal(self, other) + + fn __eq__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return equal(self, other_array) + + fn __ne__(self, other: Array) raises -> Array: + return not_equal(self, other) + + fn __ne__(self, other: SIMD[dtype, 1]) raises -> Array: + var other_array = full(self.shape()[self.ndim() - 1], other) + return not_equal(self, other_array) diff --git a/endia/_array/reamde.md b/endia/_array/reamde.md new file mode 100644 index 0000000..662470c --- /dev/null +++ b/endia/_array/reamde.md @@ -0,0 +1 @@ +# Array diff --git a/endia/autograd/__init__.mojo b/endia/autograd/__init__.mojo new file mode 100644 index 0000000..f704280 --- /dev/null +++ b/endia/autograd/__init__.mojo @@ -0,0 +1 @@ +from .functional import * diff --git a/endia/autograd/functional.mojo b/endia/autograd/functional.mojo new file mode 100644 index 0000000..e196d24 --- /dev/null +++ b/endia/autograd/functional.mojo @@ -0,0 +1,162 @@ +from endia import Array +from endia.compile import Callable +from endia.utils import top_order_rec +from utils import Variant + + +fn grad( + f: Callable, + argnums: List[Int] = List(-1), +) raises -> Callable: + """ + Take in a Callable and return a Callable that computes the derivative of the out of the + function/callable wrt. all args. + """ + var existing_argnums = f.argnums + existing_argnums.append(argnums) + return Callable( + f.func, + existing_argnums, + f.order_of_differentiation + 1, + False, + False, + ) + + +fn grad( + f: fn (List[Array]) raises -> Array, argnums: List[Int] = List(-1) +) raises -> Callable: + return Callable(f, argnums, 1, False, False) + + +fn grad( + f: fn (Array) raises -> Array, argnums: List[Int] = List(-1) +) raises -> Callable: + return Callable(f, argnums, 1, False, False) + + +fn value_and_grad( + arg: Variant[Callable, fn (List[Array]) raises -> Array], + argnums: List[Int] = List(-1), +) raises -> Callable: + """ + Take in a Callable and return a Callable that computes the value and the derivative of the out of the + function/callable wrt. all args. + """ + var a = arg + if arg.isa[Callable](): + var _a = a.unsafe_take[Callable]() + var existing_argnums = _a.argnums + existing_argnums.append(argnums) + return Callable( + _a.func, + existing_argnums, + _a.order_of_differentiation + 1, + False, + True, + ) + else: + var _f = a.unsafe_take[fn (List[Array]) raises -> Array]() + return Callable(_f, argnums, 1, False, True) + + +########################################################################### +# The follwoing code is only in this file because function overloadings +# (grad) are seeminly not supported for functions living in differnt files. +# Will move this code to imperative.mojo as soon as possible. +########################################################################### +fn backward(arg: Array, retain_graph: Bool) raises: + var out = arg + + reset_node_id_recursive(out) + var trace = List[Array]() + top_order_rec(out, trace) + + var last_grad = ones(arg.shape()) + # last_grad.requires_grad_(True) + out.grad_(last_grad) + + # var breakpoint_nodes = List[Array]() + + for i in range(len(trace) - 1, -1, -1): + var curr = trace[i] + # print("computing backward:", curr.name()) + var primals = curr.args() + + if primals.size == 0: + continue + + var vjp = curr.vjp() + var grad = curr.grad() + var primals_grads = vjp(primals, grad, curr) + + for j in range(len(primals)): + var primal = primals[j] + if primal.requires_grad(): + var primal_grad = primals_grads[j] + if primal.has_grad(): + primal_grad = add(primal_grad, primal.grad()) + primal.grad_(primal_grad) + + if primal.has_fxgraph(): + if primal.is_breakpoint(): + primal_grad.postpone_as_grpah_output() + # if primal.args().size > 0: + # # _ = primal.grad().item(0) + # var primal_grad = primal.grad() + # primal_grad.postpone_as_grpah_output() + # else: + # breakpoint_nodes.append(primal) + + if not retain_graph: + var primal_grad = primal.grad() + primal_grad.clear_args() + + # for breakpoint_node in breakpoint_nodes: + # var graph = breakpoint_node[].grad().graph() + # var id_in_graph = breakpoint_node[].grad().id_in_graph() + # var graph_node = graph[].trace[id_in_graph] + # if not graph_node.is_computed: + # print("here") + # _ = breakpoint_node[].grad().item(0) + + # print("done") + + # _ = out.item(0) # call this on curr to compute all postponed outeputs of the potentially corresponding fx graph, this will cimpute all outputs at once + + reset_node_id_recursive(out) + + +fn grad( + outs: List[Array], + inputs: List[Array], + retain_grads: Bool = True, + retain_graph: Bool = False, +) raises -> Variant[Array, List[Array]]: + """ + Compute the gradient of outs wrt. inputs. + """ + for i in range(len(outs)): + var out = outs[i] + remove_grad_rec(out) + for i in range(len(inputs)): + var input = inputs[i] + remove_grad_rec(input) + for i in range(len(outs)): + var out = outs[i] + out.backward(retain_graph=retain_graph) + var final_outs = List[Array]() + for i in range(len(inputs)): + var input = inputs[i] + var gradient = input.grad() + if not retain_graph: + gradient.clear_args() + gradient.remove_grad() + if not retain_grads: + input.remove_grad() + final_outs.append(gradient) + + if len(final_outs) == 1: + return final_outs[0] + else: + return final_outs diff --git a/endia/autograd/reamde.md b/endia/autograd/reamde.md new file mode 100644 index 0000000..0a4c0fd --- /dev/null +++ b/endia/autograd/reamde.md @@ -0,0 +1 @@ +# Autograd diff --git a/endia/compile/__init__.mojo b/endia/compile/__init__.mojo new file mode 100644 index 0000000..ff0c4ec --- /dev/null +++ b/endia/compile/__init__.mojo @@ -0,0 +1,4 @@ +from .fx import * +from .functional import * +from .callable import * +from .max_utils import * diff --git a/endia/compile/callable.mojo b/endia/compile/callable.mojo new file mode 100644 index 0000000..a20dd6b --- /dev/null +++ b/endia/compile/callable.mojo @@ -0,0 +1,184 @@ +from endia import Array +from endia.utils import list_contains +from endia.functional._utils import copy, execute_copy_raw +from endia.utils import dtype, remove_grad_rec +from utils import Variant + + +@value +struct Callable(CollectionElement): + """ + Callable is the main data structure for Just-In-Time (JIT) compiling a function and computing gradients + in a functional manner. It encapsulates the function, its arguments, and the captured computation graph, + enabling dynamic optimization and execution. + """ + + var args: Arc[List[Array]] + var argnums: List[List[Int]] + var func: Variant[ + fn (List[Array]) raises -> Array, fn (Array) raises -> Array + ] + var captured_graph: Arc[FxGraph] + var order_of_differentiation: Int + var optimize_jit: Bool + var args_initialized: Bool + var keep_intermediate_outs: Bool + + fn __init__( + inout self, + func: Variant[ + fn (List[Array]) raises -> Array, fn (Array) raises -> Array + ], + argnums: List[List[Int]], + order_of_differentiation: Int = 0, + optimize_jit: Bool = True, + keep_intermediate_outs: Bool = False, + compile_with_MAX: Bool = False, + ) raises: + self.args = List[Array]() + self.argnums = argnums + self.func = func + self.captured_graph = Arc[FxGraph](FxGraph(compile_with_MAX)) + self.order_of_differentiation = order_of_differentiation + self.optimize_jit = optimize_jit + self.args_initialized = False + self.keep_intermediate_outs = keep_intermediate_outs + + fn __call__( + self, args: List[Array] + ) raises -> Variant[Array, List[Array], List[List[Array]]]: + var captured_graph = self.captured_graph + if len(self.args[]) == 0: + if self.optimize_jit: + for _ in range(len(args)): + var arg = Array(List[Int](0)) + arg.requires_grad_(True) + captured_graph[].op_arrayeration(arg) + captured_graph[].trace[-1].is_breakpoint = True + arg.graph_(captured_graph) + var cached_args = self.args + cached_args[].append(arg) + else: + if self.optimize_jit: + if len(args) != len(self.args[]): + raise "Number of arguments inconcistent in jit." + + var adapted_args = List[Array]() + + if self.optimize_jit: + captured_graph[].curr_idx = len(args) + for i in range(len(args)): + var arg_in = args[i] + var arg = self.args[][i] + var size = arg_in.base().size() + if size != arg.size(): + arg.data_(DTypePointer[dtype].alloc(size)) + execute_copy_raw( + arg_in.data(), + arg.data(), + arg_in.array_shape(), + arg_in.is_complex(), + ) + arg.array_shape_(arg_in.array_shape()) + captured_graph[].trace[arg.id_in_graph()].is_computed = True + + adapted_args = self.args[] + + else: + var tmp_requires_grad_info = List[Bool]() + for arg in args: + tmp_requires_grad_info.append(arg[].requires_grad()) + for i in range(len(args)): + var arg = args[i] if len(args[i].args()) == 0 else copy(args[i]) + for order in range(self.order_of_differentiation): + if ( + list_contains(self.argnums[order], i) + or self.argnums[order][0] == -1 + ): + arg.requires_grad_(True) + adapted_args.append(arg) + + # compute forward + var res: Array + if self.func.isa[fn (List[Array]) raises -> Array](): + var _func = self.func[fn (List[Array]) raises -> Array] + res = _func(adapted_args) + elif self.func.isa[fn (Array) raises -> Array](): + var _func = self.func[fn (Array) raises -> Array] + res = _func(adapted_args[0]) + else: + raise "Function type not supported." + + # set breakpoint for the result + # _ = res.item(0) + res.postpone_as_grpah_output() + + var outs = List[Array]() + outs.append(res) + var next_outs = outs + var number_outs_per_order = List(1) + + # compute backward from all current outs + for order in range(self.order_of_differentiation): + var tmp_outs = next_outs + next_outs.clear() + + for arr in tmp_outs: + arr[].backward( + retain_graph=True if ( + order < self.order_of_differentiation - 1 + or self.optimize_jit + ) else False + ) + for i in range(len(adapted_args)): + if ( + list_contains(self.argnums[order], i) + or self.argnums[order][0] == -1 + ): + next_outs.append(adapted_args[i].grad()) + + remove_grad_rec(arr[]) + + if self.keep_intermediate_outs: + outs.extend(next_outs) + number_outs_per_order.append(len(next_outs)) + else: + outs = next_outs + + _ = res.item( + 0 + ) # call this on curr to compute all postponed outeputs of the potentially corresponding fx graph, this will cimpute all outputs at once + + # make out independent of the computation graph i.e. copy the data into fresh arrays + var final_outs = List[Array]() + for out in outs: + var copy_out = Array(out[].shape()) + var out_dual = out[].graph_dual() if out[].has_fxgraph() else out[] + execute_copy_raw( + out_dual.data(), + copy_out.data(), + out_dual.array_shape(), + out_dual.is_complex(), + ) + final_outs.append(copy_out) + + # clean up + if self.optimize_jit: + captured_graph[].zero_data() + captured_graph[].reset_data_and_shapes_to_uncomputed() + + # build out based on the order of differentiation and if we want to keep intermediate outs + if len(final_outs) == 1: + return final_outs[0] + elif self.keep_intermediate_outs: + var out = List[List[Array]]() + var idx = 0 + for order in range(self.order_of_differentiation + 1): + var tmp = List[Array]() + for _ in range(number_outs_per_order[order]): + tmp.append(final_outs[idx]) + idx += 1 + out.append(tmp) + return out + else: + return final_outs diff --git a/endia/compile/functional.mojo b/endia/compile/functional.mojo new file mode 100644 index 0000000..b099b29 --- /dev/null +++ b/endia/compile/functional.mojo @@ -0,0 +1,73 @@ +from endia import Array +from compile import * + +############################################################################################################### +# JIT Compilation +# +# Any Function can be traced, even those that branch via conditional statements on the data of the arrays. +# It works as follows: +# 1) Any Operation has a name (e.g. add, sub, incr, etc.). When a function is traced/captured, the +# names of the ops are compared to the operation at the curr_idx of the execution, which points to +# the operation that is expected, based on what has happened in an earlier capture of the function. +# If both names match, we return immediately and postpone our execution, if not equal, we brach and +# mark this potential different path at the curr_idx. The operations of the unexpected/new trace is +# are added at the end of the trace of the graph. That way, over time, the Graph will know about all +# possible branches, while still storing/caching previous traces. +# 2) So far we have a graph with different branches. However the purpose of the graph capturing is to +# optimize subgraphs of the computation, i.e. cache optimized subgraphs and call then when they are +# needed/the values of their out nodes are used in the outer function. +# General Idea: The Graph consists of GraphNodes, which is a small datastructure which is kind of a +# dual node to the actual node in the outer function, except it does not follow the deletion of its +# primal and lives as long as the grpah lives. If a node in the outer function is marked as a breakpoint +# via a getter or setter, this breakpoint marks an end to a subgraph in the Graph. Everytime we come +# across a breakpoint node, we look at the current subgraph which emerged thorugh the last +# couple of operations and try to fuse elemtwise ops together and perform general optimizations on this +# now static and cached computation graph. If we come across this breakpoint node again in another +# execution of the outer function, we simply call this optimized subgraph and we are done. +############################################################################################################### + + +fn jit(arg: Callable, compile_with_MAX: Bool = False) raises -> Callable: + """ + Jit and cache the given function or Callable. + """ + return Callable( + arg.func, + arg.argnums, + arg.order_of_differentiation, + True, + arg.keep_intermediate_outs, + compile_with_MAX, + ) + + +fn jit( + arg: fn (List[Array]) raises -> Array, compile_with_MAX: Bool = False +) raises -> Callable: + """ + Jit and cache the given function or Callable. + """ + return Callable( + arg, + List[Int](-1), + 0, + True, + False, + compile_with_MAX, + ) + + +fn jit( + arg: fn (Array) raises -> Array, compile_with_MAX: Bool = False +) raises -> Callable: + """ + Jit and cache the given function or Callable. + """ + return Callable( + arg, + List[Int](-1), + 0, + True, + False, + compile_with_MAX, + ) diff --git a/endia/compile/fx.mojo b/endia/compile/fx.mojo new file mode 100644 index 0000000..3ca81b0 --- /dev/null +++ b/endia/compile/fx.mojo @@ -0,0 +1,555 @@ +from endia import Array, Node, ArrayShape, ShapeNode +from compile import * +from endia.functional._utils import ( + contiguous, + op_array, + setup_array_shape, + setup_shape_and_data, + execute_copy_raw, +) +from max.engine import Model +from .max_utils import build_model, execute_model + + +# @value +struct FxSubgraph(CollectionElement): + """ + FxSubgraph represents a functionally pure subgraph within a larger computation graph. It facilitates optimization + and efficient execution of subgraphs by caching and reusing optimized computations. + """ + + var traversing_arrays: List[Array] + var inputs: List[Array] + var outputs: List[Array] + var max_model: List[Arc[Model]] + var compile_with_MAX: Bool + + fn __init__( + inout self, + compile_with_MAX: Bool, + traversing_arrays: List[Array] = List[Array](), + ): + self.traversing_arrays = traversing_arrays + self.inputs = List[Array]() + self.outputs = List[Array]() + self.max_model = List[Arc[Model]]() + self.compile_with_MAX = compile_with_MAX + + fn __copyinit__(inout self, other: FxSubgraph): + self.traversing_arrays = other.traversing_arrays + self.inputs = other.inputs + self.outputs = other.outputs + self.max_model = other.max_model + self.compile_with_MAX = other.compile_with_MAX + + fn __moveinit__(inout self, owned other: FxSubgraph): + self.traversing_arrays = other.traversing_arrays^ + self.inputs = other.inputs^ + self.outputs = other.outputs^ + self.max_model = other.max_model^ + self.compile_with_MAX = other.compile_with_MAX + + fn append(inout self, arr: Array): + self.traversing_arrays.append(arr) + + fn setup_inputs_and_outputs(inout self) raises: + var is_input = Dict[Int, Bool]() + var is_output = Dict[Int, Bool]() + for graph_node in self.traversing_arrays: + var id_in_graph = graph_node[].id_in_graph() + is_input[ + id_in_graph + ] = False # if a node has either no args at all or no args in the subgraph, then it is an input + is_output[ + id_in_graph + ] = True # if a node has no users in the subgraph, then it is an output + + for graph_node in self.traversing_arrays: + var node_id = graph_node[].id_in_graph() + var args = graph_node[].args() + var has_no_args_in_subgraph = True + for arg in args: + var arg_id = arg[].id_in_graph() + is_output[arg_id] = False + for arg in args: + var arg_id = arg[].id_in_graph() + if arg_id in is_input: + has_no_args_in_subgraph = False + break + if has_no_args_in_subgraph: + is_input[node_id] = True + else: + is_input[node_id] = False + + for graph_node in self.traversing_arrays: + var node_id = graph_node[].id_in_graph() + if is_input[node_id]: + self.inputs.append(graph_node[]) + if is_output[node_id]: + self.outputs.append(graph_node[]) + + fn execute(inout self) raises: + if self.compile_with_MAX: + # Use a compiled subgraph with the MAX engine and execute it + + # needed for the max graph building: nodes and their ids need to be unique and in order + for i in range(len(self.traversing_arrays)): + self.traversing_arrays[i].id_(i) + + # Do once: setup the data and shape of the output nodes, then build the max model + if len(self.max_model) == 0: + self.setup_inputs_and_outputs() + for output in self.outputs: + var array_shape = output[].array_shape() + compute_shape(array_shape, True) + var base = output[].base() + setup_shape_and_data(base) + + self.max_model.append( + Arc( + build_model( + self.inputs, self.outputs, self.traversing_arrays + ) + ) + ) + + # execute the max model with the current inputs and copy the outpus back into the callable trace + var max_model = self.max_model[0] + var new_outputs = execute_model( + self.inputs, self.outputs, max_model[] + ) + + for i in range(len(new_outputs)): + var dst = self.outputs[i] + var src = new_outputs[i] + for j in range(dst.size()): + dst.store(j, src.load(j)) + + else: + # use Endia's default execution + var graph = self.traversing_arrays[0].graph() + + for graph_node in self.traversing_arrays: + var curr = graph_node[] + if len(curr.args()) == 0: + continue + var id_in_graph = curr.id_in_graph() + var fwd = curr.fwd() + var args = curr.args() + fwd(curr, args) + # graph[].trace[id_in_graph].is_computed = True + + # reset the node ids and set the is_computed flag to True + for curr in self.traversing_arrays: + curr[].id_(-1) + curr[].is_graph_node_computed_(True) + + fn print(self) raises: + """ + Print the subgraph in a human readable table like format. It will show the flow of the computation from the + top to the bottom, and also will show the direct dependencies (args) and other metadata such as the shape, stride, + storage_offset and the requires_grad flag. + """ + # print an IR like tabular representation of the subgraph + var opcode_reference = "opcode " + var name_reference = "name " + var target_reference = "target " + var args_reference = "args " + var kwargs_reference = "kwargs " + var shape_reference = "[shape, stride, storage_offset]" + var header: String = opcode_reference + " | " + name_reference + " | " + target_reference + " | " + args_reference + " | " + kwargs_reference + " | " + shape_reference + " | " + + var header_sub = String("_") * len(opcode_reference) + " | " + String( + "_" + ) * len(name_reference) + " | " + String("_") * len( + target_reference + ) + " | " + String( + "_" + ) * len( + args_reference + ) + " | " + String( + "_" + ) * len( + kwargs_reference + ) + " | " + String( + "_" + ) * len( + shape_reference + ) + print(header) + print(header_sub) + + for i in range(len(self.traversing_arrays)): + var curr = self.traversing_arrays[i] + + var opcode: String = "placeholder" + if len(curr.args()) > 0: + opcode = "call_function" + if i == len(self.traversing_arrays) - 1: + opcode = "out" + opcode += String(" ") * (len(opcode_reference) - len(opcode)) + var name: String = str(curr.id_in_graph()) + name += "_" + name += str(curr.name()) + name += String(" ") * (len(name_reference) - len(name)) + + var target = curr.name() + target += String(" ") * (len(target_reference) - len(target)) + + var args: String = "" + for arg in curr.args(): + if arg[].has_fxgraph(): + args += str(arg[].id_in_graph()) + else: + args += str(-1) + args += "_" + args += arg[].name() + args += ", " + if len(curr.args()) == 0: + args = "{}" + args += String(" ") * (len(args_reference) - len(args)) + + var kwargs: String = "" + for kwarg in curr.kwargs(): + if kwarg[].has_fxgraph(): + kwargs += str(kwarg[].id_in_graph()) + else: + kwargs += str(-1) + kwargs += "_" + kwargs += kwarg[].name() + kwargs += ", " + if len(curr.kwargs()) == 0: + kwargs = "{}" + kwargs += String(" ") * (len(kwargs_reference) - len(kwargs)) + + var shape = curr.shape() + var stride = curr.stride() + var storage_offset = curr.storage_offset() + var shape_str: String = "[" + for i in range(len(shape)): + shape_str += str(shape[i]) + if i < len(shape) - 1: + shape_str += "x" + shape_str += ", " + for i in range(len(stride)): + shape_str += str(stride[i]) + if i < len(stride) - 1: + shape_str += "x" + shape_str += ", " + shape_str += str(storage_offset) + shape_str += "]" + shape_str += String(" ") * (len(shape_reference) - len(shape_str)) + + print( + opcode, + "|", + name, + "|", + target, + "|", + args, + "|", + kwargs, + "|", + shape_str, + ) + + fn IR(self) raises -> String: + """ + Get an IR like code representation of the subgraph. As of right now this has now real functionality, but eventually this + IR string should become a valid MLIR code representation of the subgraph, which can be compiled and optimized by the MLIR. + """ + # create an IR like code representation of the subgraph + var IR: String = "\n" + var IR_header: String = "func @fx_subgraph(" + var IR_body: String = "" + var out_name: String = "" + var out_shape: String = "" + + for i in range(len(self.traversing_arrays)): + var curr = self.traversing_arrays[i] + + var opcode: String = "placeholder" + if len(curr.args()) > 0: + opcode = "call_function" + if i == len(self.traversing_arrays) - 1: + opcode = "out" + + var name: String = str(curr.id_in_graph()) + name += "_" + name += str(curr.name()) + + var target = curr.name() + + var args: String = "" + for j in range(len(curr.args())): + var arg = curr.args()[j] + args += "%" + if arg.has_fxgraph(): + args += str(arg.id_in_graph()) + else: + args += str(-1) + args += "_" + args += arg.name() + if j < len(curr.args()) - 1: + args += ", " + + if len(curr.args()) == 0: + args = "{}" + + var kwargs: String = "" + for j in range(len(curr.kwargs())): + var kwarg = curr.kwargs()[j] + if kwarg.has_fxgraph(): + kwargs += str(kwarg.id_in_graph()) + else: + kwargs += str(-1) + kwargs += "_" + kwargs += kwarg.name() + if j < len(curr.kwargs()) - 1: + kwargs += ", " + if len(curr.kwargs()) == 0: + kwargs = "{}" + + var shape = curr.shape() + # var stride = curr.stride() + # var storage_offset = curr.storage_offset() + var shape_str: String = "" + for i in range(len(shape)): + shape_str += str(shape[i]) + if i < len(shape) - 1: + shape_str += "x" + shape_str += "xf32" + + if opcode == "placeholder": + IR_header += "%" + IR_header += name + IR_header += ": tensor<" + IR_header += shape_str + IR_header += ">, " + elif opcode == "call_function" or opcode == "out": + IR_body += " %" + IR_body += name + IR_body += " = @" + IR_body += target + IR_body += " " + IR_body += args + IR_body += " -> " + IR_body += " tensor<" + IR_body += shape_str + IR_body += ">\n" + if opcode == "out": + out_name = name + out_shape = shape_str + else: + pass + + IR_header += ") -> tensor<" + IR_header += out_shape + "> {\n" + + IR += IR_header + IR += IR_body + + IR += " return %" + IR += out_name + " : " + "tensor<" + out_shape + ">\n" + + IR += "}\n" + return IR + + +@value +struct FxGraphNode(CollectionElement): + """ + FxGraphNode is a lightweight dual representation of an Array (or Node) within a traced function. It serves as a + bookkeeping structure to facilitate tracing, caching, and optimization of computation graphs. + """ + + var array_in_graph: Array + var name: String + var branch_to_idx: Int + var is_breakpoint: Bool + var dependencies: Int + var sub_graph: List[Arc[FxSubgraph]] + var tmp_id_in_subgraph: Int + var jvp_derivatives: List[Array] + var is_computed: Bool + var id: Int + + fn __init__( + inout self, name: String, branch_to_idx: Int, array_in_graph: Array + ): + self.array_in_graph = array_in_graph + self.name = name + self.branch_to_idx = branch_to_idx + self.is_breakpoint = False + self.dependencies = 0 + self.sub_graph = List[Arc[FxSubgraph]]() + self.tmp_id_in_subgraph = -1 + self.jvp_derivatives = List[Array]() + self.is_computed = False + self.id = -1 + + fn print(self, storage_offset: String = "") raises: + print( + storage_offset, + self.name + + ( + " -> potentially jump to " + + str(self.branch_to_idx) if self.branch_to_idx + != -1 else "" + ), + ) + print(str(self.array_in_graph)) + + fn subgraph(self) raises -> FxSubgraph: + if not self.sub_graph: + raise "Subgraph not yet computed" + return self.sub_graph[0][] + + +@value +struct FxGraph: + """ + FxGraph is a data structure that holds the traced operations and computation graph of a function. It facilitates + Just-In-Time (JIT) compilation, optimization, and caching of subgraphs within the computation graph. + """ + + var trace: List[FxGraphNode] + var curr_idx: Int + var postponed_outputs: List[Int] + var compile_with_MAX: Bool + + fn __init__(inout self, compile_with_MAX: Bool): + self.trace = List[FxGraphNode]() + self.curr_idx = 0 + self.postponed_outputs = List[Int]() + self.compile_with_MAX = compile_with_MAX + + fn op_arrayeration(inout self, inout arr: Array) raises: + if arr.id() == -2: + raise "Error: This is a test error." + var name = arr.name() + # print(name, self.curr_idx) + if self.curr_idx >= len(self.trace): + # print(" registering new entry", arr.name()) + # array is not initalized in fxgraph, but the array shape subgraph is being setup already, still dynamically computed when data is specified though! + var id_in_graph = len(self.trace) + arr.id_in_graph_(id_in_graph) + self.trace.append(FxGraphNode(name, -1, arr)) + self.curr_idx = len(self.trace) + else: + var registered_op = self.trace[self.curr_idx] + if registered_op.name == name: + # print(" same operation", arr.name()) + arr.id_in_graph_(self.curr_idx) + self.curr_idx += 1 + return + else: + if registered_op.branch_to_idx == -1: + # print(" setup new jump at the end of the trace", arr.name()) + self.trace[self.curr_idx] = FxGraphNode( + registered_op.name, + len(self.trace), + registered_op.array_in_graph, + ) + self.curr_idx = len(self.trace) + self.op_arrayeration(arr) + else: + # print(" jumping to registered alternative operation", arr.name()) + self.curr_idx = registered_op.branch_to_idx + self.op_arrayeration(arr) + # print("->",name, arr.id_in_graph(), arr.has_fxgraph(), self.curr_idx, len(self.trace)) + + fn reset_data_and_shapes_to_uncomputed(inout self) raises: + for graph_node in self.trace: + var arr = graph_node[].array_in_graph + if len(arr.args()) == 0: + continue + # var array_shape = arr.array_shape() + # array_shape.shape_node[].is_computed = False + arr.is_computed_(False) + arr.is_graph_node_computed_(False) + + fn setup_grads(inout self) raises: + for graph_node in self.trace: + var arr = graph_node[].array_in_graph + var requires_grad = arr.requires_grad() + if requires_grad: + arr.grad_(Array(arr.shape(), requires_grad=True)) + + fn zero_data(inout self) raises: + for graph_node in self.trace: + var array_in_graph = graph_node[].array_in_graph + # self.trace[array_in_graph.id_in_graph()].is_computed = False + array_in_graph.is_graph_node_computed_(False) + if not array_in_graph.is_view() and len(array_in_graph.args()) == 0: + var data = array_in_graph.data() + var size = graph_node[].array_in_graph.size() + memset_zero(data, size) + + fn subgraph(inout self, compile_with_MAX: Bool) raises -> Arc[FxSubgraph]: + var subgraph_list = List[Array]() + # var curr = self.trace[breakpoint_id].array_in_graph + # reset_node_id_recursive(curr) + + for graph_id in self.postponed_outputs: + var graph_node = self.trace[graph_id[]] + var postponed_output = graph_node.array_in_graph + reset_node_id_recursive(postponed_output) + + # print(len(self.postponed_outputs)) + + for graph_id in self.postponed_outputs: + var graph_node = self.trace[graph_id[]] + var postponed_output = graph_node.array_in_graph + top_order_subgraph_rec(postponed_output, subgraph_list) + # self.trace[graph_id[]].is_breakpoint = True + + for graph_id in self.postponed_outputs: + var graph_node = self.trace[graph_id[]] + var postponed_output = graph_node.array_in_graph + reset_node_id_recursive(postponed_output) + + self.postponed_outputs.clear() + + # adapt the trace of the subgraph such that all args/inputs are at the beginning: + var subgraph_list_inputs = List[Array]() + var subgraph_list_rest = List[Array]() + + for arr in subgraph_list: + if arr[].name() == "arg": + subgraph_list_inputs.append(arr[]) + else: + subgraph_list_rest.append(arr[]) + + var subgraph_final_trace = List[Array]() + for arr in subgraph_list_inputs: + subgraph_final_trace.append(arr[]) + for arr in subgraph_list_rest: + subgraph_final_trace.append(arr[]) + + # # print + # for i in range(len(subgraph_final_trace)): + # print(subgraph_final_trace[i].name()) + + # for arr in subgraph_final_trace: + # print(arr[].id(), arr[].name(), " -> [", end="") + # for arg in arr[].args(): + # print(arg[].id(), arg[].name(), ", ", end="") + # print("]") + + return Arc(FxSubgraph(compile_with_MAX, subgraph_final_trace)) + + +fn top_order_subgraph_rec(inout curr: Array, inout trace: List[Array]) raises: + # if curr.id() != -1 or curr.is_breakpoint() or curr.is_graph_node_computed(): + # return + for arg in curr.args(): + if ( + arg[].node[].id == -1 + and not curr.is_breakpoint() + and not curr.is_graph_node_computed() + ): + top_order_rec(arg[], trace) + curr.id_(len(trace)) + trace.append(curr) diff --git a/endia/compile/max_utils.mojo b/endia/compile/max_utils.mojo new file mode 100644 index 0000000..4afa8b1 --- /dev/null +++ b/endia/compile/max_utils.mojo @@ -0,0 +1,206 @@ +from endia import Array, Node, ArrayShape, ShapeNode +from endia.functional._utils import contiguous, array_shape_to_list +from compile import * + + +from max.engine import InferenceSession, Model, TensorMap, EngineNumpyView +from max.graph import Graph, TensorType, ops, Symbol, Dim, Type +from max.tensor import Tensor, TensorShape, TensorSpec +from python import Python +from .python_utils import array_to_numpy, tensor_to_array + + +fn top_order(inout curr: Array) -> List[Array]: + var trace = List[Array]() + reset_node_id_recursive(curr) + top_order_rec(curr, trace) + return trace + + +fn to_tensor(arg: Array) raises -> Tensor[DType.float32]: + var shape = TensorShape(List(arg.shape())) + var tensor = Tensor[DType.float32](shape) + for i in range(arg.size()): + tensor.store(i, arg.load(i)) + return tensor + + +fn make_equal_rank( + arg: Symbol, arg_shape: List[Int], comp_shape: List[Int] +) raises -> Symbol: + var diff = len(comp_shape) - len(arg_shape) + if diff > 0: + var res = arg + for _ in range(diff): + res = ops.unsqueeze(res, 0) + return res + return arg + + +def build_graph( + args: List[Array], outputs: List[Array], trace: List[Array] +) -> Graph: + var arg_specs = List[Type]() + for arg in args: + arg_specs.append(TensorType(TensorSpec(DType.float32, arg[].shape()))) + var out_specs = List[Type]() + for out in outputs: + out_specs.append(TensorType(TensorSpec(DType.float32, out[].shape()))) + graph = Graph(name="subgraph", in_types=arg_specs, out_types=out_specs) + + var symbol_trace = List[Symbol]() + + var args_idx = Dict[String, Int]() + for i in range(len(args)): + args_idx[str(args[i].id())] = i + + var output_symbols = List[Symbol]() + + for array in trace: + var tmp_args = List[Array]() + for arg in array[].args(): + tmp_args.append( + arg[] # if (not arg[].name() == "brdcst" or len(arg[].args()) == 0) else arg[].args()[0] + ) + + if len(tmp_args) == 0: + var idx_in_args = args_idx[str(array[].id())] + symbol_trace.append(graph[idx_in_args]) + continue + + elif array[].is_view(): + var arg0 = symbol_trace[ + tmp_args[0].id() + ] # if tmp_args[0].has_fxgraph() else graph.constant(to_tensor(tmp_args[0])) + if array[].name() == "brdcst": + # symbol_trace.append(symbol_trace[tmp_args[0].id()]) + var zero_const = graph.constant( + Tensor[DType.float32](array[].shape(), 0) + ) + symbol_trace.append(ops.add(arg0, zero_const)) + elif array[].name() == "permute": + symbol_trace.append(ops.transpose(arg0, -1, -2)) + elif array[].name() == "squeeze": + var all_axis = array_shape_to_list( + array[].array_shape().args()[1] + ) + for i in range(len(all_axis)): + arg0 = ops.squeeze(arg0, all_axis[i] - i) + symbol_trace.append(arg0) + elif array[].name() == "unsqueeze": + var all_axis = array_shape_to_list( + array[].array_shape().args()[1] + ) + for axis in all_axis: + arg0 = ops.unsqueeze(arg0, axis[]) + symbol_trace.append(arg0) + elif array[].name() == "permute": + symbol_trace.append(ops.transpose(arg0, -1, -2)) + else: + print("Unknown view op:", array[].name()) + continue + + elif array[].name() == "reduce_add": + var arg0 = symbol_trace[tmp_args[0].id()] + var in_shape = tmp_args[0].shape() + var all_axis = array_shape_to_list(array[].array_shape().args()[1]) + for i in range(len(all_axis)): + var axis = all_axis[i] + # MAX currently only has a mean op and no general reduce_add op, hence we need to multiply by the divisor to emulate reduce_add + var divisor = in_shape[axis] + var divisor_constant_value = Tensor[DType.float32]( + TensorShape(1), divisor + ) + var divisor_constant = graph.constant(divisor_constant_value) + arg0 = ops.mean(arg0, axis) * divisor_constant + symbol_trace.append(arg0) + continue + + elif len(tmp_args) == 1: + # unary op + arg0 = symbol_trace[tmp_args[0].id()] + if array[].name() == "relu": + symbol_trace.append(ops.relu(arg0)) + elif array[].name() == "softmax": + symbol_trace.append(ops.softmax(arg0)) + elif array[].name() == "neg": + symbol_trace.append(-arg0) + elif array[].name() == "sin": + symbol_trace.append(ops.sin(arg0)) + elif array[].name() == "cos": + symbol_trace.append(ops.cos(arg0)) + elif array[].name() == "exp": + symbol_trace.append(ops.exp(arg0)) + elif array[].name() == "log": + symbol_trace.append(ops.log(arg0)) + elif array[].name() == "sqrt": + symbol_trace.append(ops.sqrt(arg0)) + elif array[].name() == "ge_zero": + symbol_trace.append( + ops.greater( + arg0, + graph.constant(Tensor[DType.float32](List(1), 0)), + ) + ) + else: + print("Unknown unary op:", array[].name()) + + elif len(tmp_args) == 2: + # binary op + var arg1 = symbol_trace[tmp_args[0].id()] + var arg2 = symbol_trace[tmp_args[1].id()] + + if array[].name() == "add": + symbol_trace.append(ops.add(arg1, arg2)) + elif array[].name() == "sub": + symbol_trace.append(ops.sub(arg1, arg2)) + elif array[].name() == "mul": + symbol_trace.append(ops.mul(arg1, arg2)) + elif array[].name() == "div": + symbol_trace.append(ops.div(arg1, arg2)) + elif array[].name() == "pow_to": + symbol_trace.append(ops.pow(arg1, arg2)) + elif array[].name() == "matmul": + symbol_trace.append(ops.matmul(arg1, arg2)) + else: + print("Unknown binary op:", array[].name()) + else: + raise "Unknown op:" + array[].name() + + for output in outputs: + output_symbols.append(symbol_trace[output[].id()]) + + graph.output(output_symbols) + return graph + + +fn build_model( + args: List[Array], outputs: List[Array], trace: List[Array] +) raises -> Model: + print("JIT compiling a new subgraph...") + var graph = build_graph(args, outputs, trace) + var session = InferenceSession() + var model = session.load(graph) + return model + + +def execute_model( + args: List[Array], outputs: List[Array], model: Model +) -> List[Array]: + # Convert args to numpy arrays and store in numpy dict with key "input0", "input1", ... + var np = Python.import_module("numpy") + var numpy_dict = Python.dict() + for id in range(len(args)): + var arg = args[id] + var np_array = array_to_numpy(arg, np) + numpy_dict["input" + str(id)] = np_array + + # Execute_max_graph the model + var results = model.execute(numpy_dict^) + + # Put all intermediate nodes into the output list + var array_outputs = List[Array]() + for i in range(len(outputs)): + var output = results.get[DType.float32]("output" + str(i)) + array_outputs.append(tensor_to_array(output)) + return array_outputs diff --git a/endia/compile/python_utils.mojo b/endia/compile/python_utils.mojo new file mode 100644 index 0000000..a0fa06c --- /dev/null +++ b/endia/compile/python_utils.mojo @@ -0,0 +1,57 @@ +# from extensibility import Tensor, empty_tensor +from max.tensor import Tensor +import python +from endia import Array + + +@always_inline +fn memcpy_to_numpy(array: PythonObject, tensor: Array) raises: + var dst = DTypePointer[dtype]( + address=int(array.__array_interface__["data"][0]) + ) + var src = tensor.data() + var length = tensor.size() + memcpy(dst, src, length) + + +@always_inline +fn shape_to_python_list(shape: List[Int]) raises -> PythonObject: + var python_list = python.Python.evaluate("list()") + for i in range(len(shape)): + _ = python_list.append(shape[i]) + return python_list^ + + +@always_inline +fn get_np_dtype[dtype: DType](np: PythonObject) raises -> PythonObject: + @parameter + if dtype.is_float32(): + return np.float32 + elif dtype.is_int32(): + return np.int32 + elif dtype.is_int64(): + return np.int64 + elif dtype.is_uint8(): + return np.uint8 + + raise "Unknown datatype" + + +@always_inline +fn array_to_numpy(tensor: Array, np: PythonObject) raises -> PythonObject: + var shape = shape_to_python_list(tensor.shape()) + var tensor_as_numpy = np.zeros(shape, np.float32) + _ = shape^ + memcpy_to_numpy(tensor_as_numpy, tensor) + return tensor_as_numpy^ + + +fn tensor_to_array(src: Tensor[dtype]) raises -> Array: + var shape = List[Int]() + for i in range(src.rank()): + shape.append(src.shape()[i]) + var dst = Array(shape) + var dst_data = dst.data() + var src_data = src._ptr + memcpy(dst_data, src_data, dst.size()) + return dst diff --git a/endia/compile/reamde.md b/endia/compile/reamde.md new file mode 100644 index 0000000..00eaa91 --- /dev/null +++ b/endia/compile/reamde.md @@ -0,0 +1 @@ +# JIT compilation, callables and the MAX engine diff --git a/endia/fft/__init__.mojo b/endia/fft/__init__.mojo new file mode 100644 index 0000000..e69de29 diff --git a/endia/fft/reamde.md b/endia/fft/reamde.md new file mode 100644 index 0000000..6f071a1 --- /dev/null +++ b/endia/fft/reamde.md @@ -0,0 +1 @@ +# Fast Fourrier Transforms \ No newline at end of file diff --git a/endia/functional/__init__.mojo b/endia/functional/__init__.mojo new file mode 100644 index 0000000..f44d032 --- /dev/null +++ b/endia/functional/__init__.mojo @@ -0,0 +1,9 @@ +from .binary_ops import * +from .comparison_ops import * +from .unary_ops import * +from .reduce_ops import * +from .view_ops import * +from .index_ops import * +from .init_ops import * +from .loss_ops import * +from .spacial_ops import * diff --git a/endia/functional/_utils.mojo b/endia/functional/_utils.mojo new file mode 100644 index 0000000..81c7b12 --- /dev/null +++ b/endia/functional/_utils.mojo @@ -0,0 +1,544 @@ +from endia import Array +from endia.utils import * +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + + +############################################################################################################### +# Array utils and setup +############################################################################################################### + + +@always_inline +fn compute_stride(shape: List[Int]) -> List[Int]: + var stride = List[Int]() + for _ in range(len(shape)): + stride.append(1) + for i in range(len(shape) - 2, -1, -1): + stride[i] = stride[i + 1] * shape[i + 1] + return stride + + +@always_inline +fn compute_storage_offset( + indices: List[Int], stride: List[Int], storage_offset: Int +) -> Int: + # if len(indices) != len(stride): + # raise "Indices and stride must have the same length" + var result = storage_offset + for i in range(len(indices)): + result += indices[i] * stride[i] + return result + + +@always_inline +fn compute_nd_index(index: Int, shape: List[Int]) -> List[Int]: + # if len(shape) == 0: + # raise "Shape must have at least one dimension" + var indices = List[Int]() + var flat_idx = index + for i in range(len(shape) - 1, -1, -1): + indices.append(flat_idx % shape[i]) + flat_idx //= shape[i] + indices.reverse() + return indices + + +fn compute_indeces_for_matmul( + i: Int, res: Array, lhs_b: Array, rhs_b: Array +) raises -> List[Int]: + var nd_idx_res = compute_nd_index(i, res.shape()) + var nd_idx_lhs = List[Int]() + var nd_idx_rhs = List[Int]() + for j in range(len(nd_idx_res) - 2): + nd_idx_lhs.append(nd_idx_res[j] if lhs_b.stride()[j] != 0 else 0) + nd_idx_rhs.append(nd_idx_res[j] if rhs_b.stride()[j] != 0 else 0) + nd_idx_lhs.append(nd_idx_res[len(nd_idx_res) - 2]) + nd_idx_lhs.append(0) + nd_idx_rhs.append(0) + nd_idx_rhs.append(nd_idx_res[len(nd_idx_res) - 1]) + var lhs_idx_tmp = compute_storage_offset(nd_idx_lhs, lhs_b.stride(), 0) + var rhs_idx_tmp = compute_storage_offset(nd_idx_rhs, rhs_b.stride(), 0) + return List(lhs_idx_tmp, rhs_idx_tmp) + + +fn execute_copy_raw( + source_data: DTypePointer[DType.float32], + dest_data: DTypePointer[DType.float32], + val_shape: ArrayShape, + is_complex: Bool, +) raises: + var rank = val_shape.ndim() + var shape = List[Int]() + var stride = List[Int]() + if rank == 1: + shape.append(1) + stride.append(0) + shape.append(val_shape.shape()[0]) + stride.append(val_shape.stride()[0]) + else: + shape = val_shape.shape() + stride = val_shape.stride() + rank = len(shape) + var rows = shape[rank - 2] + var cols = shape[rank - 1] + var size = 1 + for i in range(rank): + size *= shape[i] + var flat_idx = 0 + for k in range(0, size, rows * cols): + var nd_idx = compute_nd_index(k, shape) + var base_idx = compute_storage_offset( + nd_idx, stride, val_shape.storage_offset() + ) + + for i in range(rows): + var i_idx = base_idx + i * stride[rank - 2] + + if is_complex: + if stride[rank - 1] == 1: + + @parameter + fn copy_v[simd_width: Int](j: Int): + var j_idx = i_idx + j * stride[rank - 1] + dest_data.store[width = 2 * simd_width]( + flat_idx * 2, + source_data.load[width = 2 * simd_width](j_idx * 2), + ) + flat_idx += simd_width + + vectorize[copy_v, nelts[dtype]()](cols) + else: + for j in range(cols): + var j_idx = i_idx + j * stride[rank - 1] + dest_data.store( + 2 * flat_idx, source_data.load(2 * j_idx) + ) + dest_data.store( + 2 * flat_idx + 1, source_data.load(2 * j_idx + 1) + ) + flat_idx += 1 + + else: + if stride[rank - 1] == 1: + + @parameter + fn copy_v_complex[simd_width: Int](j: Int): + var j_idx = i_idx + j * stride[rank - 1] + dest_data.store[width=simd_width]( + flat_idx, source_data.load[width=simd_width](j_idx) + ) + flat_idx += simd_width + + vectorize[copy_v_complex, nelts[dtype]()](cols) + else: + for j in range(cols): + var j_idx = i_idx + j * stride[rank - 1] + dest_data.store(flat_idx, source_data.load(j_idx)) + flat_idx += 1 + + +fn copy(arg: Array) raises -> Array: + var res = Array(arg.shape(), False, arg.is_complex()) + execute_copy_raw( + arg.data(), res.data(), arg.array_shape(), arg.is_complex() + ) + return res + + +fn contiguous(arg: Array) raises -> Array: + var arg_stride = arg.stride() + var expected_stride = compute_stride(arg.shape()) + if arg.is_complex(): + for i in range(len(expected_stride)): + expected_stride[i] *= 2 + var is_contiguous = True + for i in range(len(arg_stride)): + if arg_stride[i] != expected_stride[i]: + is_contiguous = False + break + var res = arg if is_contiguous else copy(arg) + return res + + +fn op_array( + array_shape: ArrayShape, + args: List[Array], + kwargs: List[Array], + name: String, + fwd: fn (inout Array, List[Array]) raises -> None, + jvp: fn (List[Array], List[Array]) raises -> Array, + vjp: fn (List[Array], Array, Array) raises -> List[Array], + is_view: Bool = False, + uew_op: Optional[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] = None, + bew_op: Optional[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] = None, +) raises -> Array: + """ + This operation will setup an array i.e. a node in the background with all its necessary data and + the functions (forward/jvp/vjp etc.) that act on its direct parent nodes. If any of the parent nodes/args + point to JIT graph on which caches all the operations, we also always use this graph for the current newly created + array. The JIT FxGraph is always passed as a reference to the node, so that we can always access the graph. + """ + var res_arr = Array(array_shape) + res_arr.set_fwd(fwd) + res_arr.kwargs_(kwargs) + res_arr.set_name(name) + res_arr.is_view_(is_view) + + var requires_grad = False + var is_complex = False + for arg in args: + requires_grad = requires_grad or arg[].requires_grad() + is_complex = is_complex or arg[].is_complex() + res_arr.is_complex_(is_complex) + if requires_grad: + res_arr.requires_grad_(True) + res_arr.args_(args) + res_arr.jvp_(jvp) + res_arr.vjp_(vjp) + + if uew_op: + var op = uew_op + res_arr.append_uew(op.unsafe_take()) + + if bew_op: + var op = bew_op + res_arr.append_bew(op.unsafe_take()) + + # print("Try: registering operation", res_arr.name()) + + # go through all args and if any of them points to a graph we take this graph and also let the current node point to this graph, then we register the opertaitaon with the node in the graph + for arg in args: # res_arr.args(): + if arg[].has_fxgraph(): + # print("Do: registering operation", res_arr.name()) + var graph = arg[].graph() + graph[].op_arrayeration(res_arr) + res_arr.graph_(graph) + + # var arr_shape = res_arr.graph_dual().array_shape() + # compute_shape(arr_shape, True) + + var res_arr_dual = res_arr.graph_dual() + + # adapt args of dual_arr to catch external args as well + var adapted_args = res_arr_dual.args() + for i in range(len(adapted_args)): + var static_outter_arg = args[i] + if not static_outter_arg.has_fxgraph(): + # adapted_args[i] = contiguous(static_outter_arg) + # adapted_args[i].graph_(graph) + # adapted_args[i].set_name("arg") + adapted_args[i] = copy(static_outter_arg) + res_arr_dual.args_(adapted_args) + + # if node has been visited before and is marked as breakpoint, we need to compute it + var arr_node = graph[].trace[res_arr.id_in_graph()] + if arr_node.is_breakpoint: + _ = res_arr.item(0) + + return res_arr + + fwd(res_arr, args) + return res_arr + + +fn setup_shape_and_data(inout curr: Array) raises: + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + var true_size = array_shape.size() if not curr.is_complex() else 2 * array_shape.size() + curr.data_(DTypePointer[dtype].alloc(true_size)) + memset_zero(curr.data(), true_size) + if not curr.requires_grad(): + array_shape.shape_node[].args.clear() + # print("Setup shape and data", curr.name()) + + +@always_inline +fn execute_inplace_ops_inline( + inout curr: Array, + uew: List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ], + bew: List[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ], + inplace_infos: List[InplaceInfo], + args: List[Array], + idx: Int, +) raises: + var simd_data = curr.load[nelts[dtype]() * 2 // 2](idx) + for i in range(len(inplace_infos)): + var info = inplace_infos[i] + if info.type == 0: + var op = uew[info.idx] + simd_data = op(simd_data, SIMD[dtype, nelts[dtype]() * 2 // 2]())[0] + else: + var op = bew[info.idx] + var arg2 = args[info.arg_id] + var arg2_data = arg2.load[nelts[dtype]() * 2 // 2](idx) + simd_data = op( + simd_data, + arg2_data, + SIMD[dtype, nelts[dtype]() * 2 // 2](), + SIMD[dtype, nelts[dtype]() * 2 // 2](), + )[0] + curr.store[nelts[dtype]() * 2 // 2](idx, simd_data) + + +fn execute_inplace_ops(inout curr: Array) raises: + var uew = curr.uew() + var bew = curr.bew() + var inplace_infos = curr.inplace_infos() + var args = curr.args() + for data_idx in range(0, curr.size(), nelts[dtype]()): + execute_inplace_ops_inline( + curr, uew, bew, inplace_infos, args, data_idx + ) + + +# fn execute_unary_op(inout curr: Array, args: List[Array]) raises: +# var simd_op = curr.uew()[0] +# var arg0 = contiguous(args[0]) +# var arg0_data = arg0.data() +# var curr_data = curr.data() +# var rest_size = curr.size() % nelts[dtype]() +# var end = curr.size() - rest_size + +# if curr.is_complex(): +# for i in range(0, end, nelts[dtype]()): +# var idx_real = i * 2 +# # var idx_imag = idx_real + 1 +# var data0 = arg0_data.load[width = nelts[dtype]() * 2]( +# idx_real +# ).deinterleave() +# var res_deinterleaved = simd_op(data0[0], data0[1]) +# var res = res_deinterleaved[0].interleave(res_deinterleaved[1]) +# curr_data.store[width = 2 * ((nelts[dtype]() * 2) // 2)]( +# idx_real, res +# ) +# if rest_size != 0: +# var rest_simd0_real = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# var rest_simd0_imag = SIMD[dtype, nelts[dtype]() * 2 // 2]() + +# for i in range(rest_size): +# var idx_real = (end + i) * 2 +# var idx_imag = idx_real + 1 +# rest_simd0_real[i] = arg0_data.load(idx_real) +# rest_simd0_imag[i] = arg0_data.load(idx_imag) +# var res = simd_op( +# rest_simd0_real, +# rest_simd0_imag, +# ) +# for i in range(rest_size): +# var idx_real = (end + i) * 2 +# var idx_imag = idx_real + 1 +# curr_data.store(idx_real, res[0][i]) +# curr_data.store(idx_imag, res[1][i]) +# else: +# for i in range(0, end, nelts[dtype]()): +# var res = simd_op( +# arg0_data.load[width = nelts[dtype]() * 2 // 2](i), +# SIMD[dtype, nelts[dtype]() * 2 // 2](0), +# )[0] +# curr_data.store[width = nelts[dtype]() * 2 // 2](i, res) + +# # now we vectorize along the last dimesion +# if rest_size != 0: +# var rest_simd0 = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# for i in range(rest_size): +# rest_simd0[i] = arg0_data.load(i + end) +# var res = simd_op( +# rest_simd0, SIMD[dtype, nelts[dtype]() * 2 // 2]() +# )[0] +# for i in range(end, curr.size()): +# curr_data.store(i, res[i - end]) + +# _ = arg0 + + +# fn execute_binary_op(inout curr: Array, args: List[Array]) raises: +# var simd_op = curr.bew()[0] +# var arg0 = contiguous(args[0]) +# var arg1 = contiguous(args[1]) +# if arg0.ndim() == 1 and arg0.shape()[0] == 1: +# arg0 = full(arg1.shape()[-1], arg0.load(0)) +# if arg1.ndim() == 1 and arg1.shape()[0] == 1: +# arg1 = full(arg0.shape()[-1], arg1.load(0)) +# var arg0_data = arg0.data() +# var arg1_data = arg1.data() +# var curr_data = curr.data() +# var rest_size = curr.size() % nelts[dtype]() +# var end = curr.size() - rest_size + +# if curr.is_complex(): +# for i in range(0, end, nelts[dtype]()): +# var idx_real = i * 2 +# # var idx_imag = idx_real + 1 +# var data0 = arg0_data.load[width = nelts[dtype]() * 2]( +# idx_real +# ).deinterleave() +# var data1 = arg1_data.load[width = nelts[dtype]() * 2]( +# idx_real +# ).deinterleave() +# var res_deinterleaved = simd_op( +# data0[0], data1[0], data0[1], data1[1] +# ) +# var res = res_deinterleaved[0].interleave(res_deinterleaved[1]) +# curr_data.store[width = 2 * ((nelts[dtype]() * 2) // 2)]( +# idx_real, res +# ) +# if rest_size != 0: +# var rest_simd0_real = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# var rest_simd0_imag = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# var rest_simd1_real = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# var rest_simd1_imag = SIMD[dtype, nelts[dtype]() * 2 // 2]() + +# for i in range(rest_size): +# var idx_real = (end + i) * 2 +# var idx_imag = idx_real + 1 +# rest_simd0_real[i] = arg0_data.load(idx_real) +# rest_simd0_imag[i] = arg0_data.load(idx_imag) +# rest_simd1_real[i] = arg1_data.load(idx_real) +# rest_simd1_imag[i] = arg1_data.load(idx_imag) +# var res = simd_op( +# rest_simd0_real, +# rest_simd1_real, +# rest_simd0_imag, +# rest_simd1_imag, +# ) +# for i in range(rest_size): +# var idx_real = (end + i) * 2 +# var idx_imag = idx_real + 1 +# curr_data.store(idx_real, res[0][i]) +# curr_data.store(idx_imag, res[1][i]) +# else: +# for i in range(0, end, nelts[dtype]()): +# var res = simd_op( +# arg0_data.load[width = nelts[dtype]() * 2 // 2](i), +# arg1_data.load[width = nelts[dtype]() * 2 // 2](i), +# SIMD[dtype, nelts[dtype]() * 2 // 2](0), +# SIMD[dtype, nelts[dtype]() * 2 // 2](0), +# )[0] +# curr_data.store[width = nelts[dtype]() * 2 // 2](i, res) + +# # now we vectorize along teh last dimesion +# if rest_size != 0: +# var rest_simd0 = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# var rest_simd1 = SIMD[dtype, nelts[dtype]() * 2 // 2]() +# for i in range(rest_size): +# rest_simd0[i] = arg0_data.load(i + end) +# rest_simd1[i] = arg1_data.load(i + end) +# var res = simd_op( +# rest_simd0, +# rest_simd1, +# SIMD[dtype, nelts[dtype]() * 2 // 2](0), +# SIMD[dtype, nelts[dtype]() * 2 // 2](0), +# )[0] +# for i in range(end, curr.size()): +# curr_data.store(i, res[i - end]) + +# _ = arg0 +# _ = arg1 +# _ = curr +# _ = args + + +# fn register_inplace_op( +# inout curr: Array, +# op: Variant[ +# fn ( +# SIMD[dtype, nelts[dtype]() * 2 // 2] +# ) -> SIMD[dtype, nelts[dtype]() * 2 // 2], fn ( +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ) -> SIMD[dtype, nelts[dtype]() * 2 // 2] +# ], +# right_side_arg: Optional[Array] = None, +# ) raises: +# if op.isa[ +# fn ( +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ) -> Tuple[ +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ] +# ](): +# # op is a unary elemtwise operation +# var _op = op[ +# fn ( +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ) -> Tuple[ +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ] +# ] +# curr.append_uew(_op) +# curr.append_inplace_info(InplaceInfo(0, len(curr.uew()) - 1)) +# elif op.isa[ +# fn ( +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ) -> Tuple[ +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ] +# ](): +# # op is a binary elemtwise operation +# var op = op[ +# fn ( +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ) -> Tuple[ +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# SIMD[dtype, nelts[dtype]() * 2 // 2], +# ] +# ] +# if not right_side_arg: +# raise "Error in register_inplace_op: right_side_args is None" +# curr.append_bew(op) +# var arg = right_side_arg +# curr.append_arg(arg.unsafe_take()) +# curr.append_inplace_info( +# InplaceInfo(1, len(curr.bew()) - 1, len(curr.args()) - 1) +# ) +# else: +# raise "Error in register_inplace_op: op is not a valid operation" diff --git a/endia/functional/binary_ops/__init__.mojo b/endia/functional/binary_ops/__init__.mojo new file mode 100644 index 0000000..4109b1d --- /dev/null +++ b/endia/functional/binary_ops/__init__.mojo @@ -0,0 +1,6 @@ +from .add_op import add +from .sub_op import sub +from .mul_op import mul +from .div_op import div +from .matmul_op import matmul +from .pow_op import pow_to diff --git a/endia/functional/binary_ops/_utils.mojo b/endia/functional/binary_ops/_utils.mojo new file mode 100644 index 0000000..7e271bb --- /dev/null +++ b/endia/functional/binary_ops/_utils.mojo @@ -0,0 +1,164 @@ +from endia import Array +from endia.functional._utils import ( + contiguous, + op_array, + setup_array_shape, +) +from endia.utils import NA, broadcast_shapes + + +trait DifferentiableBinaryOp: + """ + Trait for binary operations that are differentiable. That mean they define methods for both forward and reverse mode automatic differentiation. + """ + + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + ... + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + ... + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + ... + + @staticmethod + fn binary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + ... + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + ... + + +fn binary_op_array( + arg0: Array, + arg1: Array, + name: String, + fwd: fn (inout Array, List[Array]) raises -> None, + jvp: fn (List[Array], List[Array]) raises -> Array, + vjp: fn (List[Array], Array, Array) raises -> List[Array], + inplace_op: Optional[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] = None, +) raises -> Array: + var arr_shape = setup_array_shape( + List(arg0.array_shape(), arg1.array_shape()), + "broadcast shapes", + broadcast_shapes, + ) + if not arg0.has_fxgraph() and not arg1.has_fxgraph(): + compute_shape(arr_shape, arg0.requires_grad() or arg1.requires_grad()) + var args = List( + expand(arg0, arr_shape), + expand(arg1, arr_shape), + ) + + return op_array( + arr_shape, args, NA, name, fwd, jvp, vjp, False, None, inplace_op + ) + + +fn execute_binary_op(inout curr: Array, args: List[Array]) raises: + var simd_op = curr.bew()[0] + var arg0 = contiguous(args[0]) + var arg1 = contiguous(args[1]) + if arg0.ndim() == 1 and arg0.shape()[0] == 1: + arg0 = full(arg1.shape()[-1], arg0.load(0)) + if arg1.ndim() == 1 and arg1.shape()[0] == 1: + arg1 = full(arg0.shape()[-1], arg1.load(0)) + var arg0_data = arg0.data() + var arg1_data = arg1.data() + var curr_data = curr.data() + var rest_size = curr.size() % nelts[dtype]() + var end = curr.size() - rest_size + + if curr.is_complex(): + for i in range(0, end, nelts[dtype]()): + var idx_real = i * 2 + # var idx_imag = idx_real + 1 + var data0 = arg0_data.load[width = nelts[dtype]() * 2]( + idx_real + ).deinterleave() + var data1 = arg1_data.load[width = nelts[dtype]() * 2]( + idx_real + ).deinterleave() + var res_deinterleaved = simd_op( + data0[0], data1[0], data0[1], data1[1] + ) + var res = res_deinterleaved[0].interleave(res_deinterleaved[1]) + curr_data.store[width = 2 * ((nelts[dtype]() * 2) // 2)]( + idx_real, res + ) + if rest_size != 0: + var rest_simd0_real = SIMD[dtype, nelts[dtype]() * 2 // 2]() + var rest_simd0_imag = SIMD[dtype, nelts[dtype]() * 2 // 2]() + var rest_simd1_real = SIMD[dtype, nelts[dtype]() * 2 // 2]() + var rest_simd1_imag = SIMD[dtype, nelts[dtype]() * 2 // 2]() + + for i in range(rest_size): + var idx_real = (end + i) * 2 + var idx_imag = idx_real + 1 + rest_simd0_real[i] = arg0_data.load(idx_real) + rest_simd0_imag[i] = arg0_data.load(idx_imag) + rest_simd1_real[i] = arg1_data.load(idx_real) + rest_simd1_imag[i] = arg1_data.load(idx_imag) + var res = simd_op( + rest_simd0_real, + rest_simd1_real, + rest_simd0_imag, + rest_simd1_imag, + ) + for i in range(rest_size): + var idx_real = (end + i) * 2 + var idx_imag = idx_real + 1 + curr_data.store(idx_real, res[0][i]) + curr_data.store(idx_imag, res[1][i]) + else: + for i in range(0, end, nelts[dtype]()): + var res = simd_op( + arg0_data.load[width = nelts[dtype]() * 2 // 2](i), + arg1_data.load[width = nelts[dtype]() * 2 // 2](i), + SIMD[dtype, nelts[dtype]() * 2 // 2](0), + SIMD[dtype, nelts[dtype]() * 2 // 2](0), + )[0] + curr_data.store[width = nelts[dtype]() * 2 // 2](i, res) + + # now we vectorize along teh last dimesion + if rest_size != 0: + var rest_simd0 = SIMD[dtype, nelts[dtype]() * 2 // 2]() + var rest_simd1 = SIMD[dtype, nelts[dtype]() * 2 // 2]() + for i in range(rest_size): + rest_simd0[i] = arg0_data.load(i + end) + rest_simd1[i] = arg1_data.load(i + end) + var res = simd_op( + rest_simd0, + rest_simd1, + SIMD[dtype, nelts[dtype]() * 2 // 2](0), + SIMD[dtype, nelts[dtype]() * 2 // 2](0), + )[0] + for i in range(end, curr.size()): + curr_data.store(i, res[i - end]) + + _ = arg0 + _ = arg1 + _ = curr + _ = args diff --git a/endia/functional/binary_ops/add_op.mojo b/endia/functional/binary_ops/add_op.mojo new file mode 100644 index 0000000..38e18c9 --- /dev/null +++ b/endia/functional/binary_ops/add_op.mojo @@ -0,0 +1,164 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableBinaryOp, execute_binary_op, binary_op_array + + +####--------------------------------------------------------------------------------------------------------------------#### +#### Addition +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Add(DifferentiableBinaryOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + """Adds two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise sum of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = add(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return binary_op_array( + arg0, + arg1, + "add", + Add.__call__, + Add.jvp, + Add.vjp, + Add.binary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """ + Compute Jacobian-vector product for array addition. + + Args: + primals: Primal input arrays. + tangents: Tangent vectors. + + Returns: + Array: Jacobian-vector product. + + #### Note: + Implements forward-mode automatic differentiation for addition. + The result represents how the output changes with respect to + infinitesimal changes in the inputs along the directions specified by the tangents. + + #### See Also: + add_vjp: Reverse-mode autodiff for addition. + """ + return tangents[0] + tangents[1] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array addition. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for addition. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + add_jvp: Forward-mode autodiff for addition. + """ + return List( + grad if primals[0].requires_grad() else Array(0), + grad if primals[1].requires_grad() else Array(0), + ) + + @staticmethod + fn binary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to add two complex numbers represented as SIMD vectors. + + Args: + arg0_real: The real part of the first complex number. + arg1_real: The real part of the second complex number. + arg0_imag: The imaginary part of the first complex number. + arg1_imag: The imaginary part of the second complex number. + + Returns: + The real and imaginary parts of the sum of the two complex numbers as a tuple. + """ + return arg0_real + arg1_real, arg0_imag + arg1_imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Adds two arrays element-wise and stores the result in the current array (curr). The function assumes that the shape and data of the args are already set up. + If the shape and data of the current array (curr) is not set up, the function will compute the shape based on the shapes of the args and set up the data accordingly. + + Args: + curr: The current array, must be mutable. + args: The two arrays to add. + + Constraints: + The two arrays must have broadcastable shapes. + """ + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn add(arg0: Array, arg1: Array) raises -> Array: + """Adds two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise sum of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = add(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return Add.fwd(arg0, arg1) diff --git a/endia/functional/binary_ops/div_op.mojo b/endia/functional/binary_ops/div_op.mojo new file mode 100644 index 0000000..538934f --- /dev/null +++ b/endia/functional/binary_ops/div_op.mojo @@ -0,0 +1,173 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) + +from ._utils import DifferentiableBinaryOp, execute_binary_op, binary_op_array + + +####--------------------------------------------------------------------------------------------------------------------#### +#### Division +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Div(DifferentiableBinaryOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + """Divides two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise division of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = div(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return binary_op_array( + arg0, + arg1, + "div", + Div.__call__, + Div.jvp, + Div.vjp, + Div.binary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """ + Compute Jacobian-vector product for array division. + + Args: + primals: Primal input arrays. + tangents: Tangent vectors. + + Returns: + Array: Jacobian-vector product. + + #### Note: + Implements forward-mode automatic differentiation for division. + The result represents how the output changes with respect to + infinitesimal changes in the inputs along the directions specified by the tangents. + + #### See Also: + div_vjp: Reverse-mode autodiff for division. + """ + return (tangents[0] - tangents[1] * primals[0]) / primals[1] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array division. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for division. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + div_jvp: Forward-mode autodiff for division. + """ + var lhs_grad = grad / primals[1] if primals[ + 0 + ].requires_grad() else Array(0) + var rhs_grad = -grad * primals[0] / ( + primals[1] * primals[1] + ) if primals[1].requires_grad() else Array(0) + return List(lhs_grad, rhs_grad) + + @staticmethod + fn binary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to divide two complex numbers represented as SIMD vectors. + + Args: + arg0_real: The real part of the first complex number. + arg1_real: The real part of the second complex number. + arg0_imag: The imaginary part of the first complex number. + arg1_imag: The imaginary part of the second complex number. + + Returns: + The real and imaginary parts of the division of the two complex numbers as a tuple. + """ + var denom = arg1_real * arg1_real + arg1_imag * arg1_imag + return ( + (arg0_real * arg1_real + arg0_imag * arg1_imag) / denom, + (arg0_imag * arg1_real - arg0_real * arg1_imag) / denom, + ) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Divides two arrays element-wise and stores the result in the current array (curr). The function assumes that the shape and data of the args are already set up. + If the shape and data of the current array (curr) is not set up, the function will compute the shape based on the shapes of the args and set up the data accordingly. + + Args: + curr: The current array, must be mutable. + args: The two arrays to divide. + + Constraints: + The two arrays must have broadcastable shapes. + """ + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn div(arg0: Array, arg1: Array) raises -> Array: + """ + Divides two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise division of the two input arrays. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = div([a, b]) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return Div.fwd(arg0, arg1) diff --git a/endia/functional/binary_ops/matmul_op.mojo b/endia/functional/binary_ops/matmul_op.mojo new file mode 100644 index 0000000..c360045 --- /dev/null +++ b/endia/functional/binary_ops/matmul_op.mojo @@ -0,0 +1,332 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + op_array, + setup_shape_and_data, + contiguous, + compute_stride, + compute_indeces_for_matmul, + execute_copy_raw, + setup_array_shape, + compute_shape, +) + +from endia.functional import permute, squeeze, expand + +####--------------------------------------------------------------------------------------------------------------------#### +#### Matrix Multiplication +####--------------------------------------------------------------------------------------------------------------------#### + + +fn matmul_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of the result of a batched matrix multiplication operation. Given a lhs Array Shape (_,M,K) and a rhs Array Shape (_,K,N), the result will be (_,M,N). + It also performs broadcasting on the two input shapes to make them compatible for matrix multiplication. + + Args: + curr: The ArrayShape to store the result of the computation. + args: Lhs ArrayShape, rhs ArrayShape. + + #### Constraints: + - The number of dimensions of the lhs ArrayShape and rhs ArrayShape must be greater than or equal to 2. + - The last dimension of the lhs ArrayShape must be equal to the second-to-last dimension of the rhs ArrayShape. + """ + var arg0 = args[0] + var arg1 = args[1] + var shape0 = arg0.shape_node[].shape + var shape1 = arg1.shape_node[].shape + var ndim0 = arg0.shape_node[].ndim + var ndim1 = arg1.shape_node[].ndim + if ndim0 < 2 or ndim1 < 2: + raise "Invalid shapes for matmul, i.e. ndim < 2" + if shape0[ndim0 - 1] != shape1[ndim1 - 2]: + raise "Invalid shapes for matmul, i.e. shapes are not compatible for matmul" + var shape = List[Int]() + var diff = len(shape0) - len(shape1) + + if diff > 0: + # shape0 has more dimensions + for i in range(diff): + shape.append(shape0[i]) + for i in range(len(shape1) - 2): + if shape0[i + diff] == shape1[i]: + shape.append(shape0[i + diff]) + elif shape0[i + diff] == 1: + shape.append(shape1[i]) + elif shape1[i] == 1: + shape.append(shape0[i + diff]) + else: + raise "Error: matmul Incompatible shapes for broadcasting" + else: + # shape1 has more dimensions + for i in range(-diff): + shape.append(shape1[i]) + for i in range(len(shape0) - 2): + if shape1[i - diff] == shape0[i]: + shape.append(shape1[i - diff]) + elif shape1[i - diff] == 1: + shape.append(shape0[i]) + elif shape0[i] == 1: + shape.append(shape1[i - diff]) + else: + raise "Error: matmul Incompatible shapes for broadcasting" + shape.append(shape0[ndim0 - 2]) + shape.append(shape1[ndim1 - 1]) + curr.setup(shape) + + +fn matmul_fwd(inout curr: Array, args: List[Array]) raises: + """ + Perfomr batched matrix multiplication between two arrays and stores the result in the current array (curr). The function assumes that the shape and data of the args are already set up. + + Args: + curr: The current array, must be mutable. + args: The two arrays to multiply. + + Constraints: + The shapes of the two arrays must be compatible for matrix multiplication, i.e. the last dimension of the first array must be equal to the second last dimension of the second array. + """ + setup_shape_and_data(curr) + + # make sure that the first argument is contiguous + var arg0 = contiguous(args[0]) + + # the follwing code is to make arg1 to be a contiguous transposed version of args[1] + # we do so much here since we can't call teh high level .T() inside a fwd fucntion + var second_shape = args[1].shape() + var second_stride = args[1].stride() + var secod_storage_offset = args[1].storage_offset() + second_shape[-2] = args[1].shape()[-1] + second_shape[-1] = args[1].shape()[-2] + second_stride[-2] = args[1].stride()[-1] + second_stride[-1] = args[1].stride()[-2] + var second_transposed_array_shape = ArrayShape( + second_shape, second_stride, secod_storage_offset + ) + var second_expected_stride = compute_stride(args[1].shape()) + var is_same = True + for i in range(second_shape.size): + if second_stride[i] != second_expected_stride[i]: + is_same = False + break + var arg1 = args[1] if is_same else Array( + second_shape, is_complex=args[1].is_complex() + ) + if not is_same: + execute_copy_raw( + args[1].data(), + arg1.data(), + second_transposed_array_shape, + args[1].is_complex(), + ) + + # define some helper variables + var res_rows = curr.shape()[curr.ndim() - 2] + var res_cols = curr.shape()[curr.ndim() - 1] + var lhs_cols = arg0.shape()[arg0.ndim() - 1] + var lhs_stride = arg0.stride() + var rhs_stride = arg1.stride() + var res_stride = curr.stride() + var lhs_rank = arg0.ndim() + var rhs_rank = arg1.ndim() + var res_rank = curr.ndim() + var lhs_data = arg0.data() + var rhs_data = arg1.data() + var res_data = curr.data() + + # cache some of teh often used shape values + var k_end = lhs_cols - (lhs_cols % nelts[dtype]()) + var lhs_stride_min_1 = lhs_stride[lhs_rank - 1] + var res_stride_min_1 = res_stride[res_rank - 1] + var rhs_stride_min_1 = rhs_stride[rhs_rank - 1] + var lhs_stride_min_2 = lhs_stride[lhs_rank - 2] + var res_stride_min_2 = res_stride[res_rank - 2] + var rhs_stride_min_2 = rhs_stride[rhs_rank - 2] + + # go through all matrix mbatches and compute the matmul respectively + for i in range(0, curr.size(), res_rows * res_cols): + var indeces = compute_indeces_for_matmul(i, curr, arg0, arg1) + var lhs_idx_start = indeces[0] + var rhs_idx_start = indeces[1] + + # perform the matmul + @parameter + fn matmul_par(m: Int): + var res_idx_0 = i + m * res_stride_min_2 + var lhs_idx_0 = lhs_idx_start + m * lhs_stride_min_2 + + for n in range(res_cols): + var rhs_idx_0 = rhs_idx_start + n * rhs_stride_min_2 + var res_idx = res_idx_0 + n * res_stride_min_1 + + if not curr.is_complex(): + # we loop over the last dimension of the lhs and rhs matrices + # since we transposed the rhs, we can vectorize along both arrays + var sum = SIMD[dtype, nelts[dtype]()](0) + for k in range(0, k_end, nelts[dtype]()): + var lhs_idx = lhs_idx_0 + k * lhs_stride_min_1 + var rhs_idx = rhs_idx_0 + k * rhs_stride_min_1 + sum += lhs_data.load[width = nelts[dtype]()]( + lhs_idx + ) * rhs_data.load[width = nelts[dtype]()](rhs_idx) + + var sum_reduced = sum.reduce_add[1]() + + # add the rest of the elements + for k in range(k_end, lhs_cols): + var lhs_idx = lhs_idx_0 + k * lhs_stride_min_1 + var rhs_idx = rhs_idx_0 + k * rhs_stride_min_1 + sum_reduced += lhs_data.load(lhs_idx) * rhs_data.load( + rhs_idx + ) + + res_data.store(res_idx, sum_reduced) + else: + var sum_real = SIMD[dtype, 2 * nelts[dtype]() // 2](0) + var sum_imag = SIMD[dtype, 2 * nelts[dtype]() // 2](0) + for k in range(0, k_end, nelts[dtype]()): + var lhs_idx = lhs_idx_0 + k * lhs_stride_min_1 + var rhs_idx = rhs_idx_0 + k * rhs_stride_min_1 + var lhs = lhs_data.load[width = 2 * nelts[dtype]()]( + 2 * lhs_idx + ).deinterleave() + var rhs = rhs_data.load[width = 2 * nelts[dtype]()]( + 2 * rhs_idx + ).deinterleave() + var lhs_real = lhs[0] + var lhs_imag = lhs[1] + var rhs_real = rhs[0] + var rhs_imag = rhs[1] + sum_real += lhs_real * rhs_real - lhs_imag * rhs_imag + sum_imag += lhs_real * rhs_imag + lhs_imag * rhs_real + + var sum_real_reduced = sum_real.reduce_add[1]() + var sum_imag_reduced = sum_imag.reduce_add[1]() + + # add the rest of the elements + for k in range(k_end, lhs_cols): + var lhs_idx = lhs_idx_0 + k * lhs_stride_min_1 + var rhs_idx = rhs_idx_0 + k * rhs_stride_min_1 + var lhs_real = lhs_data.load(2 * lhs_idx) + var lhs_imag = lhs_data.load(2 * lhs_idx + 1) + var rhs_real = rhs_data.load(2 * rhs_idx) + var rhs_imag = rhs_data.load(2 * rhs_idx + 1) + sum_real_reduced += ( + lhs_real * rhs_real - lhs_imag * rhs_imag + ) + sum_imag_reduced += ( + lhs_real * rhs_imag + lhs_imag * rhs_real + ) + + res_data.store(2 * res_idx, sum_real_reduced) + res_data.store(2 * res_idx + 1, sum_imag_reduced) + + parallelize[matmul_par](res_rows, res_rows) + + _ = res_stride + _ = lhs_stride + _ = rhs_stride + _ = lhs_rank + _ = rhs_rank + _ = rhs_stride_min_1 + _ = res_stride_min_1 + _ = lhs_stride_min_1 + _ = res_stride_min_2 + _ = lhs_stride_min_2 + _ = rhs_stride_min_2 + _ = arg0 + _ = arg1 + + +fn matmul_vjp( + primals: List[Array], grad: Array, out: Array +) raises -> List[Array]: + """ + Compute vector-Jacobian product for batched matrix multiplication. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for batched matrix multiplication. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + fwd: Forward-mode autodiff for batched matrix multiplication. + """ + var lhs_grad = grad @ primals[1].T() if primals[ + 0 + ].requires_grad() else Array(0) + var rhs_grad = primals[0].T() @ grad if primals[ + 1 + ].requires_grad() else Array(0) + return List(lhs_grad, rhs_grad) + + +fn matmul_jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """ + Compute Jacobian-vector product for batched matrix multiplication. + + Args: + primals: Primal input arrays. + tangents: Tangent vectors. + + Returns: + Array: Jacobian-vector product. + + #### Note: + Implements forward-mode automatic differentiation for batched matrix multiplication. + The result represents how the output changes with respect to + infinitesimal changes in the inputs along the directions specified by the tangents. + + #### See Also: + vjp: Reverse-mode autodiff for batched matrix multiplication. + """ + return tangents[0] @ primals[1].T() + primals[0].T() @ tangents[1] + + +fn matmul(arg0: Array, arg1: Array) raises -> Array: + """ + Perform batched matrix multiplication between two arrays. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The result of the batched matrix multiplication. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = matmul(a, b) + print(result) + ``` + + #### Note: + The shapes of the two arrays must be compatible for matrix multiplication, i.e. the last dimension of the first array must be equal to the second last dimension of the second array. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), arg1.array_shape()), + "matmul_shape", + matmul_shape, + ) + + if not arg0.has_fxgraph() and not arg1.has_fxgraph(): + compute_shape(arr_shape, arg0.requires_grad() or arg1.requires_grad()) + + var args = List( + expand(arg0, arr_shape, List(-2, -1)), + expand(arg1, arr_shape, List(-2, -1)), + ) + return op_array( + arr_shape, args, NA, "matmul", matmul_fwd, matmul_jvp, matmul_vjp + ) diff --git a/endia/functional/binary_ops/mul_op.mojo b/endia/functional/binary_ops/mul_op.mojo new file mode 100644 index 0000000..1865578 --- /dev/null +++ b/endia/functional/binary_ops/mul_op.mojo @@ -0,0 +1,169 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + setup_shape_and_data, +) + +from ._utils import DifferentiableBinaryOp, execute_binary_op, binary_op_array + + +####--------------------------------------------------------------------------------------------------------------------#### +#### Multiplication +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Mul(DifferentiableBinaryOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + """Multiplies two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise product of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = mul(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return binary_op_array( + arg0, + arg1, + "mul", + Mul.__call__, + Mul.jvp, + Mul.vjp, + Mul.binary_simd_op, + ) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Multiplies two arrays element-wise and stores the result in the current array (curr). The function assumes that the shape and data of the args are already set up. + If the shape and data of the current array (curr) is not set up, the function will compute the shape based on the shapes of the args and set up the data accordingly. + + Args: + curr: The current array, must be mutable. + args: The two arrays to multiply. + + Constraints: + The two arrays must have broadcastable shapes. + """ + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """ + Compute Jacobian-vector product for array multiplication. + + Args: + primals: Primal input arrays. + tangents: Tangent vectors. + + Returns: + Array: Jacobian-vector product. + + #### Note: + Implements forward-mode automatic differentiation for multiplication. + The result represents how the output changes with respect to + infinitesimal changes in the inputs along the directions specified by the tangents. + + #### See Also: + mul_vjp: Reverse-mode autodiff for multiplication. + """ + return tangents[0] * primals[1] + tangents[1] * primals[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array multiplication. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for multiplication. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + mul_jvp: Forward-mode autodiff for multiplication. + """ + return List( + primals[1] * grad if primals[0].requires_grad() else Array(0), + primals[0] * grad if primals[1].requires_grad() else Array(0), + ) + + @staticmethod + fn binary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to multiply two complex numbers represented as SIMD vectors. + + Args: + arg0_real: The real part of the first complex number. + arg1_real: The real part of the second complex number. + arg0_imag: The imaginary part of the first complex number. + arg1_imag: The imaginary part of the second complex number. + + Returns: + The real and imaginary parts of the product of the two complex numbers as a tuple. + """ + return ( + arg0_real * arg1_real - arg0_imag * arg1_imag, + arg0_real * arg1_imag + arg0_imag * arg1_real, + ) + + +fn mul(arg0: Array, arg1: Array) raises -> Array: + """Multiplies two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise product of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = mul(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return Mul.fwd(arg0, arg1) diff --git a/endia/functional/binary_ops/pow_op.mojo b/endia/functional/binary_ops/pow_op.mojo new file mode 100644 index 0000000..5cf081c --- /dev/null +++ b/endia/functional/binary_ops/pow_op.mojo @@ -0,0 +1,176 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + setup_shape_and_data, +) + +from endia.functional import log +from ._utils import DifferentiableBinaryOp, execute_binary_op, binary_op_array + + +####--------------------------------------------------------------------------------------------------------------------#### +#### Power Function +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Pow(DifferentiableBinaryOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + """Raises the first array to the power of the second array element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise result of raising arg0 to the power of arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = pow_to(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return binary_op_array( + arg0, + arg1, + "pow_to", + Pow.__call__, + Pow.jvp, + Pow.vjp, + Pow.binary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """ + Compute Jacobian-vector product for array exponentiation. + + Args: + primals: Primal input arrays. + tangents: Tangent vectors. + + Returns: + Array: Jacobian-vector product. + + #### Note: + Implements forward-mode automatic differentiation for exponentiation. + The result represents how the output changes with respect to + infinitesimal changes in the inputs along the directions specified by the tangents. + + #### See Also: + pow_vjp: Reverse-mode autodiff for exponentiation. + """ + return primals[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array exponentiation. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for exponentiation. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + pow_jvp: Forward-mode autodiff for exponentiation. + """ + var lhs_grad = grad * primals[1] * div(out, primals[0]) if primals[ + 0 + ].requires_grad() else Array(0) + var rhs_grad = grad * out * log(primals[0]) if primals[ + 1 + ].requires_grad() else Array(0) + return List(lhs_grad, rhs_grad) + + @staticmethod + fn binary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to raise a complex number to a complex power represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg1_real: The real part of the power. + arg0_imag: The imaginary part of the complex number. + arg1_imag: The imaginary part of the power. + + Returns: + The real and imaginary parts of the complex number raised to the complex power as a tuple. + """ + var log_mag = math.log( + math.sqrt(arg0_real * arg0_real + arg0_imag * arg0_imag) + ) + var arg = math.atan2(arg0_imag, arg0_real) + var u = math.exp(log_mag * arg1_real - arg * arg1_imag) + var v = log_mag * arg1_imag + arg * arg1_real + var real_part = u * math.cos(v) + var imag_part = u * math.sin(v) + return (real_part, imag_part) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Raises the first array to the power of the second array element-wise and stores the result in the current array (curr). The function assumes that the shape and data of the args are already set up. + If the shape and data of the current array (curr) is not set up, the function will compute the shape based on the shapes of the args and set up the data accordingly. + + Args: + curr: The current array, must be mutable. + args: The two arrays to raise to the power. + + Constraints: + The two arrays must have broadcastable shapes. + """ + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn pow_to(arg0: Array, arg1: Array) raises -> Array: + """Raises the first array to the power of the second array element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise result of raising arg0 to the power of arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = pow(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Pow.fwd(arg0, arg1) diff --git a/endia/functional/binary_ops/reamde.md b/endia/functional/binary_ops/reamde.md new file mode 100644 index 0000000..64348ee --- /dev/null +++ b/endia/functional/binary_ops/reamde.md @@ -0,0 +1 @@ +# Binary Operations \ No newline at end of file diff --git a/endia/functional/binary_ops/sub_op.mojo b/endia/functional/binary_ops/sub_op.mojo new file mode 100644 index 0000000..a8e21fa --- /dev/null +++ b/endia/functional/binary_ops/sub_op.mojo @@ -0,0 +1,167 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + setup_shape_and_data, +) + +from ._utils import DifferentiableBinaryOp, execute_binary_op, binary_op_array + + +####--------------------------------------------------------------------------------------------------------------------#### +#### Subtraction +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Sub(DifferentiableBinaryOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + """Subtracts two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise difference of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = sub(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return binary_op_array( + arg0, + arg1, + "sub", + Sub.__call__, + Sub.jvp, + Sub.vjp, + Sub.binary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """ + Compute Jacobian-vector product for array subtraction. + + Args: + primals: Primal input arrays. + tangents: Tangent vectors. + + Returns: + Array: Jacobian-vector product. + + #### Note: + Implements forward-mode automatic differentiation for subtraction. + The result represents how the output changes with respect to + infinitesimal changes in the inputs along the directions specified by the tangents. + + #### See Also: + sub_vjp: Reverse-mode autodiff for subtraction. + """ + return tangents[0] - tangents[1] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array subtraction. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for subtraction. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + sub_jvp: Forward-mode autodiff for subtraction. + """ + return List( + grad if primals[0].requires_grad() else Array(0), + -grad if primals[1].requires_grad() else Array(0), + ) + + @staticmethod + fn binary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to subtract two complex numbers represented as SIMD vectors. + + Args: + arg0_real: The real part of the first complex number. + arg1_real: The real part of the second complex number. + arg0_imag: The imaginary part of the first complex number. + arg1_imag: The imaginary part of the second complex number. + + Returns: + The real and imaginary parts of the difference of the two complex numbers as a tuple. + """ + return arg0_real - arg1_real, arg0_imag - arg1_imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Subtracts two arrays element-wise and stores the result in the current array (curr). The function assumes that the shape and data of the args are already set up. + If the shape and data of the current array (curr) is not set up, the function will compute the shape based on the shapes of the args and set up the data accordingly. + + Args: + curr: The current array, must be mutable. + args: The two arrays to subtract. + + Constraints: + The two arrays must have broadcastable shapes. + """ + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn sub(arg0: Array, arg1: Array) raises -> Array: + """ + Subtracts two arrays element-wise. + + Args: + arg0: The first input array. + arg1: The second input array. + + Returns: + The element-wise difference of arg0 and arg1. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + b = Array([[5, 6], [7, 8]]) + result = sub(a, b) + print(result) + ``` + + #### This function supports + - Broadcasting. + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + + """ + return Sub.fwd(arg0, arg1) diff --git a/endia/functional/comparison_ops/__init__.mojo b/endia/functional/comparison_ops/__init__.mojo new file mode 100644 index 0000000..1660ad6 --- /dev/null +++ b/endia/functional/comparison_ops/__init__.mojo @@ -0,0 +1,7 @@ +from .ge_zero_op import ge_zero +from .greater_equal_op import greater_equal +from .greater_op import greater +from .less_equal_op import less_equal +from .less_op import less +from .not_equal_op import not_equal +from .equal_op import equal diff --git a/endia/functional/comparison_ops/_utils.mojo b/endia/functional/comparison_ops/_utils.mojo new file mode 100644 index 0000000..b79c7f3 --- /dev/null +++ b/endia/functional/comparison_ops/_utils.mojo @@ -0,0 +1,76 @@ +from endia import Array +from endia.functional._utils import ( + contiguous, + op_array, + setup_array_shape, +) +from endia.utils import NA, broadcast_shapes + + +trait ComparisonOp: + """ + Trait for comparison operations which are non-differentiable. + """ + + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + ... + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + ... + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + ... + + +fn comparison_op_array( + arg0: Array, + arg1: Array, + name: String, + fwd: fn (inout Array, List[Array]) raises -> None, + inplace_op: Optional[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] = None, +) raises -> Array: + var arr_shape = setup_array_shape( + List(arg0.array_shape(), arg1.array_shape()), + "broadcast shapes", + broadcast_shapes, + ) + if not arg0.has_fxgraph() and not arg1.has_fxgraph(): + compute_shape(arr_shape, arg0.requires_grad() or arg1.requires_grad()) + var args = List( + expand(arg0, arr_shape), + expand(arg1, arr_shape), + ) + + return op_array( + arr_shape, + args, + NA, + name, + fwd, + default_jvp, + default_vjp, + False, + None, + inplace_op, + ) diff --git a/endia/functional/comparison_ops/equal_op.mojo b/endia/functional/comparison_ops/equal_op.mojo new file mode 100644 index 0000000..3342f6f --- /dev/null +++ b/endia/functional/comparison_ops/equal_op.mojo @@ -0,0 +1,51 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import ComparisonOp, comparison_op_array +from endia.functional.binary_ops._utils import execute_binary_op + +####--------------------------------------------------------------------------------------------------------------------#### +#### Equal Operation +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Equal(ComparisonOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + return comparison_op_array( + arg0, + arg1, + "equal", + Equal.__call__, + Equal.comparing_simd_op, + ) + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + var real = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + var imag = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + for i in range(nelts[dtype]() * 2 // 2): + real[i] = arg0_real[i] == arg1_real[i] + imag[i] = arg0_imag[i] == arg1_imag[i] + return (real, imag) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn equal(arg0: Array, arg1: Array) raises -> Array: + return Equal.fwd(arg0, arg1) diff --git a/endia/functional/comparison_ops/ge_zero_op.mojo b/endia/functional/comparison_ops/ge_zero_op.mojo new file mode 100644 index 0000000..f600fcd --- /dev/null +++ b/endia/functional/comparison_ops/ge_zero_op.mojo @@ -0,0 +1,156 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from endia.functional.unary_ops._utils import ( + DifferentiableUnaryOp, + unary_op_array, + execute_unary_op, +) +from endia.functional.binary_ops._utils import ( + DifferentiableBinaryOp, + binary_op_array, + execute_binary_op, +) + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Greater Equal than Zero Operation +####-----------------------------------------------------------------------------------------------------------------#### + + +struct GeZero(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the ge_zero of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the ge_zero of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = ge_zero(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, + "ge_zero", + GeZero.__call__, + GeZero.jvp, + GeZero.vjp, + GeZero.unary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the ge_zero function. + + Implements forward-mode automatic differentiation for the ge_zero function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the ge_zero function. + + #### Note: + The Jacobian-vector product for ge_zero is computed as cos(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the ge_zero function. + + Implements reverse-mode automatic differentiation for the ge_zero function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for ge_zero is computed as cos(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return default_vjp(primals, grad, out) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the ge_zero of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the ge_zero of the complex number as a tuple. + """ + var real = 0.5 * (arg0_real / abs(arg0_real)) + 0.5 + return real, SIMD[dtype, nelts[dtype]() * 2 // 2](0) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise ge_zero computation of an array. + + Computes the ge_zero of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn ge_zero(arg0: Array) raises -> Array: + """Computes the ge_zero of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the ge_zero of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = ge_zero(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return GeZero.fwd(arg0) diff --git a/endia/functional/comparison_ops/greater_equal_op.mojo b/endia/functional/comparison_ops/greater_equal_op.mojo new file mode 100644 index 0000000..548d33a --- /dev/null +++ b/endia/functional/comparison_ops/greater_equal_op.mojo @@ -0,0 +1,49 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import ComparisonOp, comparison_op_array +from endia.functional.binary_ops._utils import execute_binary_op + +####--------------------------------------------------------------------------------------------------------------------#### +#### GreaterEqual Operation +####--------------------------------------------------------------------------------------------------------------------#### + + +struct GreaterEqual(ComparisonOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + return comparison_op_array( + arg0, + arg1, + "greater_equal", + GreaterEqual.__call__, + GreaterEqual.comparing_simd_op, + ) + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + var real = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + for i in range(nelts[dtype]() * 2 // 2): + real[i] = arg0_real[i] >= arg1_real[i] + return (real, SIMD[dtype, nelts[dtype]() * 2 // 2](0)) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn greater_equal(arg0: Array, arg1: Array) raises -> Array: + return GreaterEqual.fwd(arg0, arg1) diff --git a/endia/functional/comparison_ops/greater_op.mojo b/endia/functional/comparison_ops/greater_op.mojo new file mode 100644 index 0000000..1ca7409 --- /dev/null +++ b/endia/functional/comparison_ops/greater_op.mojo @@ -0,0 +1,49 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import ComparisonOp, comparison_op_array +from endia.functional.binary_ops._utils import execute_binary_op + +####--------------------------------------------------------------------------------------------------------------------#### +#### Greater Operation +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Greater(ComparisonOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + return comparison_op_array( + arg0, + arg1, + "greater", + Greater.__call__, + Greater.comparing_simd_op, + ) + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + var real = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + for i in range(nelts[dtype]() * 2 // 2): + real[i] = arg0_real[i] > arg1_real[i] + return (real, SIMD[dtype, nelts[dtype]() * 2 // 2](0)) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn greater(arg0: Array, arg1: Array) raises -> Array: + return Greater.fwd(arg0, arg1) diff --git a/endia/functional/comparison_ops/less_equal_op.mojo b/endia/functional/comparison_ops/less_equal_op.mojo new file mode 100644 index 0000000..1255c1d --- /dev/null +++ b/endia/functional/comparison_ops/less_equal_op.mojo @@ -0,0 +1,49 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import ComparisonOp, comparison_op_array +from endia.functional.binary_ops._utils import execute_binary_op + +####--------------------------------------------------------------------------------------------------------------------#### +#### LessEqualition +####--------------------------------------------------------------------------------------------------------------------#### + + +struct LessEqual(ComparisonOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + return comparison_op_array( + arg0, + arg1, + "less_equal", + LessEqual.__call__, + LessEqual.comparing_simd_op, + ) + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + var real = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + for i in range(nelts[dtype]() * 2 // 2): + real[i] = arg0_real[i] <= arg1_real[i] + return (real, SIMD[dtype, nelts[dtype]() * 2 // 2](0)) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn less_equal(arg0: Array, arg1: Array) raises -> Array: + return LessEqual.fwd(arg0, arg1) diff --git a/endia/functional/comparison_ops/less_op.mojo b/endia/functional/comparison_ops/less_op.mojo new file mode 100644 index 0000000..ce6a60e --- /dev/null +++ b/endia/functional/comparison_ops/less_op.mojo @@ -0,0 +1,49 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import ComparisonOp, comparison_op_array +from endia.functional.binary_ops._utils import execute_binary_op + +####--------------------------------------------------------------------------------------------------------------------#### +#### Less Operation +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Less(ComparisonOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + return comparison_op_array( + arg0, + arg1, + "less", + Less.__call__, + Less.comparing_simd_op, + ) + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + var real = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + for i in range(nelts[dtype]() * 2 // 2): + real[i] = arg0_real[i] < arg1_real[i] + return (real, SIMD[dtype, nelts[dtype]() * 2 // 2](0)) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn less(arg0: Array, arg1: Array) raises -> Array: + return Less.fwd(arg0, arg1) diff --git a/endia/functional/comparison_ops/not_equal_op.mojo b/endia/functional/comparison_ops/not_equal_op.mojo new file mode 100644 index 0000000..46b5979 --- /dev/null +++ b/endia/functional/comparison_ops/not_equal_op.mojo @@ -0,0 +1,51 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import ComparisonOp, comparison_op_array +from endia.functional.binary_ops._utils import execute_binary_op + +####--------------------------------------------------------------------------------------------------------------------#### +#### Not Equal Operation +####--------------------------------------------------------------------------------------------------------------------#### + + +struct NotEqual(ComparisonOp): + @staticmethod + fn fwd(arg0: Array, arg1: Array) raises -> Array: + return comparison_op_array( + arg0, + arg1, + "not_equal", + NotEqual.__call__, + NotEqual.comparing_simd_op, + ) + + @staticmethod + fn comparing_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg1_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + var real = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + var imag = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + for i in range(nelts[dtype]() * 2 // 2): + real[i] = arg0_real[i] != arg1_real[i] + imag[i] = arg0_imag[i] != arg1_imag[i] + return (real, imag) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + execute_binary_op(curr, args) + + +fn not_equal(arg0: Array, arg1: Array) raises -> Array: + return NotEqual.fwd(arg0, arg1) diff --git a/endia/functional/index_ops/__init__.mojo b/endia/functional/index_ops/__init__.mojo new file mode 100644 index 0000000..48c80b9 --- /dev/null +++ b/endia/functional/index_ops/__init__.mojo @@ -0,0 +1 @@ +from .concat_op import concat diff --git a/endia/functional/index_ops/concat_op.mojo b/endia/functional/index_ops/concat_op.mojo new file mode 100644 index 0000000..7f2e2e2 --- /dev/null +++ b/endia/functional/index_ops/concat_op.mojo @@ -0,0 +1,111 @@ +from endia import Array +from endia.utils import ( + list_to_array_shape, + array_shape_to_list, + setup_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) + + +####--------------------------------------------------------------------------------------------------------------------#### +# Concatenate +####--------------------------------------------------------------------------------------------------------------------#### + + +fn concat_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after concatenation. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShapes to concatenate, and the axis to concatenate along encoded in an ArrayShape. + """ + var num_args = len(args) - 1 + var axis = array_shape_to_list(args[num_args]) + var arg0 = args[0] + if axis[0] < 0: + axis[0] = arg0.ndim() + axis[0] + if axis[0] >= arg0.ndim(): + raise "Error: Axis out of bounds" + if axis.size != 1: + raise "Error: Only one axis is allowed for concatenation" + for i in range(1, num_args): + var arg = args[i] + if arg0.ndim() != arg.ndim(): + raise "Error: Incompatible shapes for concatenation" + for j in range(arg0.ndim()): + if arg0.shape()[j] != arg.shape()[j]: + raise "Error: Incompatible shapes for concatenation" + var shape = arg0.shape() + shape[axis[0]] *= num_args + curr.setup(shape) + + +fn concat_fwd(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the concat operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The arrays to concatenate. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var arg_shapes = curr.array_shape().args() + var axis = array_shape_to_list(arg_shapes[len(arg_shapes) - 1])[0] + setup_shape_and_data(curr) + if axis < 0: + axis = curr.ndim() + axis + # print(axis) + # let's slice into curr and populate with the correct values in the corresponding arg + + +fn concat_vjp( + primals: List[Array], grad: Array, out: Array +) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the concat operation. + + Args: + primals: A list containing the primal input arrays. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + A list containing the gradients with respect to the input arrays. + + #### Note: + The vector-Jacobian product for concat is computed by returning an empty list. + """ + var primals_grads = List[Array]() + return primals_grads + + +fn concat(args: List[Array], axis: Int) raises -> Array: + """ + Concatenates the input arrays along the given axis. + + Args: + args: The arrays to concatenate. + axis: The axis along which to concatenate. + + Returns: + The concatenated array. + """ + var arg_shapes = List[ArrayShape]() + for arg in args: + arg_shapes.append(arg[].array_shape()) + arg_shapes.append(list_to_array_shape(axis)) + var arr_shape = setup_array_shape(arg_shapes, "concat", concat_shape) + + return op_array( + arr_shape, args, NA, "concat", concat_fwd, default_jvp, concat_vjp, True + ) diff --git a/endia/functional/index_ops/reamde.md b/endia/functional/index_ops/reamde.md new file mode 100644 index 0000000..e3771a4 --- /dev/null +++ b/endia/functional/index_ops/reamde.md @@ -0,0 +1 @@ +# Unary Operations \ No newline at end of file diff --git a/endia/functional/init_ops/__init__.mojo b/endia/functional/init_ops/__init__.mojo new file mode 100644 index 0000000..9eda25d --- /dev/null +++ b/endia/functional/init_ops/__init__.mojo @@ -0,0 +1 @@ +from .init_ops import * diff --git a/endia/functional/init_ops/init_ops.mojo b/endia/functional/init_ops/init_ops.mojo new file mode 100644 index 0000000..9121e3c --- /dev/null +++ b/endia/functional/init_ops/init_ops.mojo @@ -0,0 +1,368 @@ +from endia import Array +from endia.utils import dtype +import random + +from endia.functional._utils import compute_nd_index, compute_storage_offset + +######################################################################## +# Initialization Ops +######################################################################## + + +fn array(*dims: Int, requires_grad: Bool = False) raises -> Array: + var shape = List[Int]() + for dim in dims: + shape.append(dim) + return Array(shape, requires_grad) + + +fn array(arr_str: StringLiteral, requires_grad: Bool = False) raises -> Array: + return Array(String(arr_str), requires_grad) + + +fn arange_(inout arg: Array) raises: + if arg.is_complex(): + for i in range(arg.size()): + arg.store_complex(i, i, 0) + else: + for i in range(arg.size()): + arg.store(i, i) + + +fn arange(shape: List[Int], requires_grad: Bool = False) raises -> Array: + var res = Array(shape, requires_grad) + arange_(res) + return res + + +fn arange_like(arg: Array) raises -> Array: + return arange(arg.shape(), arg.requires_grad()) + + +fn arange_complex( + shape: List[Int], requires_grad: Bool = False +) raises -> Array: + var real = arange(shape, requires_grad) + var imag = arange(shape, requires_grad) + return complex(real, imag, requires_grad) + + +fn zeros_(inout arg: Array) raises: + if arg.is_complex(): + memset_zero(arg.data(), arg.base().size() * 2) + else: + memset_zero(arg.data(), arg.base().size()) + + +fn zeros(shape: List[Int], requires_grad: Bool = False) raises -> Array: + var res = Array(shape, requires_grad) + zeros_(res) + return res + + +fn zeros_like(arg: Array) raises -> Array: + return zeros(arg.shape(), arg.requires_grad()) + + +fn ones_(inout arg: Array) raises: + if arg.is_complex(): + for i in range(arg.size()): + arg.store_complex(i, 1, 0) + else: + for i in range(arg.size()): + arg.store(i, 1) + + +fn ones(shape: List[Int], requires_grad: Bool = False) raises -> Array: + var res = Array(shape, requires_grad) + ones_(res) + return res + + +fn ones_like(arg: Array) raises -> Array: + return ones(arg.shape(), arg.requires_grad()) + + +fn eye_(inout arg: Array) raises: + if arg.shape()[0] != arg.shape()[1] or not arg.ndim() == 2: + raise "Error: eye_ requires a square matriarg" + if arg.is_complex(): + for i in range(arg.size()): + arg.store_complex(i, 1, 0) + else: + for i in range(arg.size()): + arg.store(i, 1) + + +fn eye(n: Int, requires_grad: Bool = False) raises -> Array: + var res = Array(List(n, n), requires_grad) + eye_(res) + return res + + +fn eye_like(arg: Array) raises -> Array: + if arg.shape()[0] != arg.shape()[1] or not arg.ndim() == 2: + raise "Error: eye_ requires a square matriarg" + return eye(arg.shape()[0], arg.requires_grad()) + + +fn fill_(inout arg: Array, value: SIMD[dtype, 1]) raises: + for i in range(arg.size()): + arg.store(i, value) + # if arg.is_complex(): + # for i in range(arg.size()): + # arg.store_complex(i, value, 0) + # else: + # for i in range(arg.size()): + # arg.store(i, value) + + +fn full( + shape: List[Int], value: SIMD[dtype, 1], requires_grad: Bool = False +) raises -> Array: + var res = Array(shape, requires_grad) + fill_(res, value) + return res + + +fn fill_like(arg: Array, value: SIMD[dtype, 1]) raises -> Array: + return full(arg.shape(), value, arg.requires_grad()) + + +fn indeces( + shape: List[Int], + stride: List[Int], + storage_offset: Int, + requires_grad: Bool = False, +) raises -> Array: + var res = Array(shape, requires_grad) + var total_elements = 1 + for i in range(shape.size): + total_elements *= shape[i] + for index in range(total_elements): + var nd_index = compute_nd_index(index, shape) + var storage_offset = compute_storage_offset( + nd_index, stride, storage_offset + ) + res.store[1](index, storage_offset) + return res + + +fn randu_(inout arg: Array, min: Float64 = 0, max: Float64 = 1) raises: + random.seed() + var data = arg.data() + var size = arg.base().size() + random.rand(data, size) + for i in range(size): + data[i] = min + data[i] * (max - min) + + +fn randu( + shape: List[Int], + min: Float64 = 0, + max: Float64 = 1, + requires_grad: Bool = False, +) raises -> Array: + var res = Array(shape, requires_grad) + randu_(res, min, max) + return res + + +fn randu_like( + inout arg: Array, min: Float64 = 0, max: Float64 = 1 +) raises -> Array: + return randu(arg.shape(), min, max, arg.requires_grad()) + + +fn randn_(inout arg: Array, mean: Float64 = 0, std: Float64 = 1) raises: + random.seed() + var data = arg.data() + var size = arg.base().size() + random.randn(data, size, mean, std) + + +fn randn( + shape: List[Int], + mean: Float64 = 0, + std: Float64 = 1, + requires_grad: Bool = False, +) raises -> Array: + var res = Array(shape, requires_grad) + randn_(res, mean, std) + return res + + +fn randn_like( + inout arg: Array, mean: Float64 = 0, std: Float64 = 1 +) raises -> Array: + return randn(arg.shape(), mean, std, arg.requires_grad()) + + +fn rand_he_normal_(inout arg: Array, fan_in: Float64 = 1) raises: + var std = math.sqrt(2 / fan_in) + randn_(arg, 0, std) + + +fn rand_he_normal( + shape: List[Int], fan_in: Float64 = 1, requires_grad: Bool = False +) raises -> Array: + var res = Array(shape, requires_grad) + rand_he_normal_(res, fan_in) + return res + + +fn rand_he_normal_like(arg: Array, fan_in: Float64 = 1) raises -> Array: + return rand_he_normal(arg.shape(), fan_in, arg.requires_grad()) + + +fn rand_he_uniform_(inout arg: Array, fan_in: Float64 = 1) raises: + var limit = math.sqrt(6.0 / fan_in) + randu_(arg, -limit, limit) + + +fn rand_he_uniform( + shape: List[Int], fan_in: Float64 = 1, requires_grad: Bool = False +) raises -> Array: + var res = Array(shape, requires_grad) + rand_he_uniform_(res, fan_in) + return res + + +fn rand_he_uniform_like(arg: Array, fan_in: Float64 = 1) raises -> Array: + return rand_he_uniform(arg.shape(), fan_in, arg.requires_grad()) + + +fn rand_xavier_normal_( + inout arg: Array, fan_in: Float64 = 1, fan_out: Float64 = 1 +) raises: + var std = math.sqrt(2.0 / (fan_in + fan_out)) + randn_(arg, 0, std) + + +fn rand_xavier_normal( + shape: List[Int], + fan_in: Float64 = 1, + fan_out: Float64 = 1, + requires_grad: Bool = False, +) raises -> Array: + var res = Array(shape, requires_grad) + rand_xavier_normal_(res, fan_in, fan_out) + return res + + +fn rand_xavier_normal_like( + inout arg: Array, fan_in: Float64 = 1, fan_out: Float64 = 1 +) raises -> Array: + return rand_xavier_normal(arg.shape(), fan_in, fan_out, arg.requires_grad()) + + +fn rand_xavier_uniform_( + inout arg: Array, fan_in: Float64 = 1, fan_out: Float64 = 1 +) raises: + var limit = math.sqrt(6.0 / (fan_in + fan_out)) + randu_(arg, -limit, limit) + + +fn rand_xavier_uniform( + shape: List[Int], + fan_in: Float64 = 1, + fan_out: Float64 = 1, + requires_grad: Bool = False, +) raises -> Array: + var res = Array(shape, requires_grad) + rand_xavier_uniform_(res, fan_in, fan_out) + return res + + +fn rand_xavier_uniform_like( + inout arg: Array, fan_in: Float64 = 1, fan_out: Float64 = 1 +) raises -> Array: + return rand_xavier_uniform( + arg.shape(), fan_in, fan_out, arg.requires_grad() + ) + + +fn rand_lecun_normal_(inout arg: Array, fan_in: Float64 = 1) raises: + var std = math.sqrt(1.0 / fan_in) + randn_(arg, 0, std) + + +fn rand_lecun_normal( + shape: List[Int], fan_in: Float64 = 1, requires_grad: Bool = False +) raises -> Array: + var res = Array(shape, requires_grad) + rand_lecun_normal_(res, fan_in) + return res + + +fn rand_lecun_normal_like( + inout arg: Array, fan_in: Float64 = 1 +) raises -> Array: + return rand_lecun_normal(arg.shape(), fan_in, arg.requires_grad()) + + +fn rand_lecun_uniform_(inout arg: Array, fan_in: Float64 = 1) raises: + var limit = math.sqrt(3.0 / fan_in) + randu_(arg, -limit, limit) + + +fn rand_lecun_uniform( + shape: List[Int], fan_in: Float64 = 1, requires_grad: Bool = False +) raises -> Array: + var res = Array(shape, requires_grad) + rand_lecun_uniform_(res, fan_in) + return res + + +fn rand_lecun_uniform_like( + inout arg: Array, fan_in: Float64 = 1 +) raises -> Array: + return rand_lecun_uniform(arg.shape(), fan_in, arg.requires_grad()) + + +fn complex( + real: Array, imag: Array, requires_grad: Bool = False +) raises -> Array: + # compare shapes, they must be equal + if real.ndim() != imag.ndim(): + raise "Error: real and imag parts must have the same shape" + for i in range(real.ndim()): + if real.shape()[i] != imag.shape()[i]: + raise "Error: real and imag parts must have the same shape" + var res = Array(real.shape(), requires_grad, True) + for i in range(res.size()): + res.store_complex(i, real.load(i), imag.load(i)) + return res + + +fn randn_complex( + shape: List[Int], + mean: Float64 = 0, + std: Float64 = 1, + requires_grad: Bool = False, +) raises -> Array: + var real = randn(shape, mean, std, requires_grad) + var imag = randn(shape, mean, std, requires_grad) + return complex(real, imag, requires_grad) + + +fn randu_complex( + shape: List[Int], + min: Float64 = 0, + max: Float64 = 1, + requires_grad: Bool = False, +) raises -> Array: + var real = randu(shape, min, max, requires_grad) + var imag = randu(shape, min, max, requires_grad) + return complex(real, imag, requires_grad) + + +fn fill_complex( + shape: List[Int], + value_real: Float64, + value_imag: Float64, + requires_grad: Bool = False, +) raises -> Array: + var real = full(shape, value_real, requires_grad) + var imag = full(shape, value_imag, requires_grad) + return complex(real, imag, requires_grad) diff --git a/endia/functional/init_ops/reamde.md b/endia/functional/init_ops/reamde.md new file mode 100644 index 0000000..3a30ba4 --- /dev/null +++ b/endia/functional/init_ops/reamde.md @@ -0,0 +1 @@ +# Array Initialization Operations \ No newline at end of file diff --git a/endia/functional/loss_ops/__init__.mojo b/endia/functional/loss_ops/__init__.mojo new file mode 100644 index 0000000..dcd03d5 --- /dev/null +++ b/endia/functional/loss_ops/__init__.mojo @@ -0,0 +1 @@ +from .mse_op import mse diff --git a/endia/functional/loss_ops/_utils.mojo b/endia/functional/loss_ops/_utils.mojo new file mode 100644 index 0000000..e69de29 diff --git a/endia/functional/loss_ops/mse_op.mojo b/endia/functional/loss_ops/mse_op.mojo new file mode 100644 index 0000000..eeb364a --- /dev/null +++ b/endia/functional/loss_ops/mse_op.mojo @@ -0,0 +1,7 @@ +import endia as nd + + +@always_inline +fn mse(pred: nd.Array, target: nd.Array) raises -> nd.Array: + var diff = nd.sub(pred, target) + return nd.sum((diff * diff)) / pred.size() diff --git a/endia/functional/loss_ops/reamde.md b/endia/functional/loss_ops/reamde.md new file mode 100644 index 0000000..990afb6 --- /dev/null +++ b/endia/functional/loss_ops/reamde.md @@ -0,0 +1 @@ +# Loss Operations \ No newline at end of file diff --git a/endia/functional/reamde.md b/endia/functional/reamde.md new file mode 100644 index 0000000..5f77e25 --- /dev/null +++ b/endia/functional/reamde.md @@ -0,0 +1 @@ +# Array Operations \ No newline at end of file diff --git a/endia/functional/reduce_ops/__init__.mojo b/endia/functional/reduce_ops/__init__.mojo new file mode 100644 index 0000000..1642941 --- /dev/null +++ b/endia/functional/reduce_ops/__init__.mojo @@ -0,0 +1,5 @@ +from .reduce_add_op import reduce_add +from .sum_op import sum +from .mean_op import mean +from .std_op import std +from .variance_op import variance diff --git a/endia/functional/reduce_ops/_utils.mojo b/endia/functional/reduce_ops/_utils.mojo new file mode 100644 index 0000000..0f561d5 --- /dev/null +++ b/endia/functional/reduce_ops/_utils.mojo @@ -0,0 +1,23 @@ +from endia import Array + + +trait DifferentiableReduceOp: + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + ... + + @staticmethod + fn fwd(arg0: Array, axis: List[Int]) raises -> Array: + ... + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + ... + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + ... + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + ... diff --git a/endia/functional/reduce_ops/mean_op.mojo b/endia/functional/reduce_ops/mean_op.mojo new file mode 100644 index 0000000..1241e5f --- /dev/null +++ b/endia/functional/reduce_ops/mean_op.mojo @@ -0,0 +1,52 @@ +from endia import Array +from endia.utils import ( + array_shape_to_list, + compute_stride, + setup_array_shape, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableReduceOp +from endia.functional import expand +from endia.functional import squeeze + + +def mean(arg0: Array, axes: List[Int], keepdims: Bool = False) -> Array: + """ + Computes the mean of the input array along the specified axes. + + Args: + arg0: The input array. + axes: The axes along which to compute the mean. + keepdims: If True, the reduced axes are retained in the output array. + + Returns: + An array containing the mean of the input array along the specified axes. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = mean(a, List(0)) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + var num_elements_arg0 = arg0.size() + var res = reduce_add(arg0, axes) + var num_elements_res = res.size() + var divisor = num_elements_arg0 / num_elements_res + if keepdims: + return res / divisor + return squeeze(res / divisor) diff --git a/endia/functional/reduce_ops/reamde.md b/endia/functional/reduce_ops/reamde.md new file mode 100644 index 0000000..b465121 --- /dev/null +++ b/endia/functional/reduce_ops/reamde.md @@ -0,0 +1 @@ +# Reduction Operations \ No newline at end of file diff --git a/endia/functional/reduce_ops/reduce_add_op.mojo b/endia/functional/reduce_ops/reduce_add_op.mojo new file mode 100644 index 0000000..fcc9b81 --- /dev/null +++ b/endia/functional/reduce_ops/reduce_add_op.mojo @@ -0,0 +1,241 @@ +from endia import Array +from endia.utils import ( + array_shape_to_list, + compute_stride, + setup_array_shape, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableReduceOp +from endia.functional import expand +from endia.functional import squeeze + +####-----------------------------------------------------------------------------------------------------------------#### +#### Reduce Ops +####-----------------------------------------------------------------------------------------------------------------#### + + +struct ReduceAdd(DifferentiableReduceOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after reducing along a specific axis. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to reduce, and the axis to reduce along encoded in an ArrayShape. + + #### Constraints: + - The axis must be a valid axis of the ArrayShape (args[0]). + - The number of axis must not exceed the number of dimensions of the ArrayShape (args[0]). + """ + var arg = args[0] + var axis = array_shape_to_list(args[1]) + var shape = arg.shape_node[].shape + var new_shape = List[Int]() + for i in range(len(shape)): + if not list_contains(axis, i): + new_shape.append(shape[i]) + else: + new_shape.append(1) + curr.setup(new_shape) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for element-wise addition of two arrays. + + Computes the sum of the input arrays and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input arrays. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and the axis and sets up the data accordingly. + """ + setup_shape_and_data(curr) + var arg = contiguous(args[0]) + var arg_shape = arg.shape() + var arg_stride = arg.stride() + var target_shape = curr.shape() + var rank = curr.ndim() + var target_stride = compute_stride(target_shape) + for i in range(rank): + if target_shape[i] == 1 and arg_shape[i] != 1: + target_stride[i] = 0 + + var target_storage_offset = curr.storage_offset() + var curr_data = curr.data() + var arg_data = arg.data() + + if rank != 1: + # check if both shapes are actually equal and we simply have to perdorm a fast copy + var rows = arg_shape[rank - 2] + var cols = arg_shape[rank - 1] + + for i in range(0, arg.size(), rows * cols): + var nd_idx = compute_nd_index(i, arg_shape) + var target_idx_0 = compute_storage_offset( + nd_idx, target_stride, target_storage_offset + ) + for j in range(rows): + var base_idx_1 = i + j * arg_stride[rank - 2] + var target_idx_1 = target_idx_0 + j * target_stride[ + rank - 2 + ] + + if ( + arg_stride[rank - 1] == 1 + and target_stride[rank - 1] == 1 + ): + + @parameter + fn reduce_v[width: Int](k: Int): + var base_idx = base_idx_1 + k * arg_stride[rank - 1] + var target_idx = target_idx_1 + k * target_stride[ + rank - 1 + ] + curr_data.store[width=width]( + target_idx, + curr_data.load[width=width](target_idx) + + arg_data.load[width=width](base_idx), + ) + + vectorize[reduce_v, nelts[dtype]()](cols) + + else: + for k in range(cols): + var base_idx = base_idx_1 + k * arg_stride[rank - 1] + var target_idx = target_idx_1 + k * target_stride[ + rank - 1 + ] + curr_data.store( + target_idx, + curr_data.load(target_idx) + + arg_data.load(base_idx), + ) + else: + # if the rank is one and we still want to reduce along the single axis + if target_stride[0] == 0: + var end = arg.size() - arg.size() % nelts[dtype]() + for i in range(0, end, nelts[dtype]()): + curr_data.store( + 0, + curr_data.load(0) + + arg_data.load[width = nelts[dtype]()](i).reduce_add(), + ) + for i in range(end, arg.size()): + curr_data.store(0, curr_data.load(0) + arg_data.load(i)) + # other wise, if we we have rank one but not´reduction, we simply copy the values + else: + var end = arg.size() - arg.size() % nelts[dtype]() + for i in range(0, end, nelts[dtype]()): + curr_data.store[width = nelts[dtype]()]( + i, + arg_data.load[width = nelts[dtype]()](i).reduce_add(), + ) + for i in range(end, arg.size()): + curr_data.store(i, arg_data.load(i)) + + _ = arg + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the addition function. + + Implements reverse-mode automatic differentiation for the addition function. + + Args: + primals: A list containing the primal input arrays. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the addition is computed as the gradient itself. + """ + return List(expand(grad, primals[0].array_shape())) + + @staticmethod + fn fwd(arg0: Array, axis: List[Int]) raises -> Array: + """ + Reduces the input array along the specified axis by summing the elements. + + Args: + arg0: The input array. + axis: The axis along which to reduce the array. + + Returns: + An array containing the sum of the input array along the specified axis. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = reduce_add(a, List(0)) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), list_to_array_shape(axis)), + "reduce_add", + ReduceAdd.compute_shape, + ) + + return op_array( + arr_shape, + List(arg0), + NA, + "reduce_add", + ReduceAdd.__call__, + ReduceAdd.jvp, + ReduceAdd.vjp, + ) + + +fn reduce_add(arg0: Array, axis: List[Int]) raises -> Array: + """ + Reduces the input array along the specified axis by summing the elements. + + Args: + arg0: The input array. + axis: The axis along which to reduce the array. + + Returns: + An array containing the sum of the input array along the specified axis. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = reduce_add(a, List(0)) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return ReduceAdd.fwd(arg0, axis) diff --git a/endia/functional/reduce_ops/std_op.mojo b/endia/functional/reduce_ops/std_op.mojo new file mode 100644 index 0000000..5b9bda3 --- /dev/null +++ b/endia/functional/reduce_ops/std_op.mojo @@ -0,0 +1,52 @@ +from endia import Array +from endia.utils import ( + array_shape_to_list, + compute_stride, + setup_array_shape, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableReduceOp +from endia.functional import expand +from endia.functional import squeeze + + +def std( + arg0: Array, + axes: List[Int] = List(0), + unbiased: Bool = True, + keepdims: Bool = False, +) -> Array: + """ + Computes the standard deviation of the input array along the specified axes. + + Args: + arg0: The input array. + axes: The axes along which to compute the standard deviation. + unbiased: If True, the standard deviation is computed using the unbiased estimator. + keepdims: If True, the reduced axes are kept in the result. + + Returns: + An array containing the standard deviation of the input array along the specified axes. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = std(a, List(0)) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return sqrt(variance(arg0, axes, unbiased, keepdims)) diff --git a/endia/functional/reduce_ops/sum_op.mojo b/endia/functional/reduce_ops/sum_op.mojo new file mode 100644 index 0000000..ec4db00 --- /dev/null +++ b/endia/functional/reduce_ops/sum_op.mojo @@ -0,0 +1,49 @@ +from endia import Array +from endia.utils import ( + array_shape_to_list, + compute_stride, + setup_array_shape, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableReduceOp +from endia.functional import expand +from endia.functional import squeeze + + +fn sum(arg0: Array) raises -> Array: + """ + Computes the sum of the input array along all axes. + + Args: + arg0: The input array. + + Returns: + An array containing the sum of the input array along all axes. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sum(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + var array_shape = arg0.array_shape() + compute_shape(array_shape, arg0.requires_grad()) + var axis = List[Int]() + for i in range(arg0.ndim()): + axis.append(i) + return squeeze(reduce_add(arg0, axis)) diff --git a/endia/functional/reduce_ops/variance_op.mojo b/endia/functional/reduce_ops/variance_op.mojo new file mode 100644 index 0000000..df3ac21 --- /dev/null +++ b/endia/functional/reduce_ops/variance_op.mojo @@ -0,0 +1,64 @@ +from endia import Array +from endia.utils import ( + array_shape_to_list, + compute_stride, + setup_array_shape, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableReduceOp +from endia.functional import expand +from endia.functional import squeeze + + +def variance( + arg0: Array, + axes: List[Int] = List(0), + unbiased: Bool = True, + keepdims: Bool = False, +) -> Array: + """ + Computes the variance of the input array along the specified axes. + + Args: + arg0: The input array. + axes: The axes along which to compute the variance. + unbiased: If True, the variance is computed using the unbiased estimator. + keepdims: If True, the reduced axes are kept in the result. + + Returns: + An array containing the variance of the input array along the specified axes. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = variance(a, List(0)) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + var num_elements_arg0 = arg0.size() + var res = reduce_add(arg0, axes) + var num_elements_res = res.size() + var divisor = (num_elements_arg0 / num_elements_res) - 1 if unbiased else ( + num_elements_arg0 / num_elements_res + ) + var mean_res = res / (num_elements_arg0 / num_elements_res) + var diff = arg0 - mean_res + var diff_squared = diff * diff + var variance = reduce_add(diff_squared, axes) / divisor + if keepdims: + return variance + return squeeze(variance) diff --git a/endia/functional/spacial_ops/__init__.mojo b/endia/functional/spacial_ops/__init__.mojo new file mode 100644 index 0000000..761f664 --- /dev/null +++ b/endia/functional/spacial_ops/__init__.mojo @@ -0,0 +1,2 @@ +from .conv_op import * +from .max_pool_op import * diff --git a/endia/functional/spacial_ops/conv_op.mojo b/endia/functional/spacial_ops/conv_op.mojo new file mode 100644 index 0000000..960a1df --- /dev/null +++ b/endia/functional/spacial_ops/conv_op.mojo @@ -0,0 +1,620 @@ +from endia import Array +from endia.utils import array_shape_to_list, list_to_array_shape, concat_lists +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from endia.functional._utils import setup_array_shape, contiguous, op_array + +# from ._utils import DifferentiableBinaryOp, execute_binary_op, binary_op_array + + +####--------------------------------------------------------------------------------------------------------------------#### +#### Convolution +####--------------------------------------------------------------------------------------------------------------------#### + + +# from basalt import Tensor, TensorShape +# from basalt.autograd.attributes import AttributeVector + +# from algorithm import parallelize, vectorize, tile +# from utils.loop import unroll + + +# @always_inline +# fn get_result_shape( +# input_shape: TensorShape, +# kernel_shape: TensorShape, +# padding: StaticIntTuple[2], +# stride: StaticIntTuple[2], +# dilation: StaticIntTuple[2], +# ) -> StaticIntTuple[2]: +# """ +# Calculates the X and Y dimensions of the resulting convolution. +# Dimensions X, Y are on the end of the shape (..., X, Y) +# dimension X on index -2. +# dimension Y on index -1. +# """ + +# var result_x_dim = ( +# (input_shape[-2] + (2 * padding[0]) - dilation[0] * (kernel_shape[-2] - 1) - 1) +# // stride[0] +# ) + 1 +# var result_y_dim = ( +# (input_shape[-1] + (2 * padding[1]) - dilation[1] * (kernel_shape[-1] - 1) - 1) +# // stride[1] +# ) + 1 + +# return StaticIntTuple[2](result_x_dim, result_y_dim) + + +# struct CONV2D: +# @staticmethod +# fn result_shape( +# input_shape: TensorShape, +# kernel_shape: TensorShape, +# bias_shape: TensorShape, +# attributes: AttributeVector, +# ) -> TensorShape: +# # Output shape = [batch, out_channels, oX, oY] + +# var padding = attributes["padding"].value().to_static[2]() +# var stride = attributes["stride"].value().to_static[2]() +# var dilation = attributes["dilation"].value().to_static[2]() +# var res = get_result_shape(input_shape, kernel_shape, padding, stride, dilation) + +# return TensorShape(input_shape[0], kernel_shape[0], res[0], res[1]) + +# @staticmethod +# fn forward[ +# input_shape: TensorShape, +# kernel_shape: TensorShape, +# bias_shape: TensorShape, +# attributes: AttributeVector, +# ]( +# inout outputs: Tensor[dtype], +# inputs: Tensor[dtype], +# kernel: Tensor[dtype], +# bias: Tensor[dtype], +# ): +# """ +# Performs a 2D convolution on the input tensor using the kernel and bias. +# inputs.shape [batch, in_channels, iX, iY] +# kernel.shape [out_channels, in_channels, kX, kY] (or weights) +# bias.shape [out_channels]. +# output.shape [batch, out_channels, oX, oY]. +# """ +# alias padding = attributes["padding"].value().to_static[2]() +# alias stride = attributes["stride"].value().to_static[2]() +# alias dilation = attributes["dilation"].value().to_static[2]() + +# alias padding_x = padding[0] +# alias padding_y = padding[1] +# alias stride_x = stride[0] +# alias stride_y = stride[1] +# alias dilation_x = dilation[0] +# alias dilation_y = dilation[1] + +# alias batch_size = input_shape[0] +# alias in_channels = input_shape[1] +# alias in_x = input_shape[2] +# alias in_y = input_shape[3] +# alias out_channels = kernel_shape[0] +# alias k_x = kernel_shape[2] +# alias k_y = kernel_shape[3] +# alias out_x = output_shape[2] +# alias out_y = output_shape[3] +# alias col_x = out_x +# alias col_y = out_y + +# alias col_shape = TensorShape( +# batch_size, col_x * col_y, in_channels * k_x * k_y +# ) # [batch, colX * colY, in_channels * kX * kY] +# alias output_shape = Self.result_shape( +# input_shape, kernel_shape, bias_shape, attributes +# ) +# alias col_shape_stripped = TensorShape(in_channels * k_x * k_y, col_x, col_y) + +# alias inputs_strides = input_shape.strides() +# alias kernel_strides = kernel_shape.strides() +# alias outputs_strides = output_shape.strides() +# alias col_strides = col_shape.strides() + +# var col_ptr = DTypePointer[dtype].alloc(col_shape.num_elements()) +# memset_zero(col_ptr, col_shape.num_elements()) + +# @parameter +# fn im2col(batch: Int): +# for ux in range(out_x): +# for uy in range(out_y): +# for in_ch in range(in_channels): +# for kx in range(k_x): +# for ky in range(k_y): +# var ix = ux * stride_x - padding_x + kx * dilation_x +# var iy = uy * stride_y - padding_y + ky * dilation_y + +# if ix < 0 or iy < 0 or ix >= in_x or iy >= in_y: +# continue + +# var col_index = ( +# batch * col_strides[0] +# + (ux * col_y + uy) * col_strides[1] +# + (in_ch * k_x * k_y + kx * k_y + ky) +# ) + +# var input_index = ( +# batch * inputs_strides[0] +# + in_ch * inputs_strides[1] +# + ix * inputs_strides[2] +# + iy +# ) + +# col_ptr[col_index] = inputs[input_index] + +# parallelize[im2col](batch_size) + +# @parameter +# fn conv(batch: Int): +# for out_ch in range(out_channels): +# for ux in range(out_x): +# for uy in range(out_y): +# var result: SIMD[dtype, nelts] = 0 + +# @parameter +# fn v_im2col[_nelts: Int](in_ch_kx_ky: Int): +# var col_index = ( +# batch * col_strides[0] +# + (ux * col_y + uy) * col_strides[1] +# + in_ch_kx_ky +# ) + +# var kernel_index = ( +# out_ch * kernel_strides[0] + in_ch_kx_ky +# ) + +# @parameter +# if _nelts == nelts: +# result += col_ptr.load[width=nelts]( +# col_index +# ) * kernel.load[nelts](kernel_index) +# else: +# result[0] += ( +# col_ptr.load[width=_nelts](col_index) +# * kernel.load[_nelts](kernel_index) +# ).reduce_add() + +# vectorize[v_im2col, nelts](in_channels * k_x * k_y) + +# var output_index = ( +# batch * outputs_strides[0] +# + out_ch * outputs_strides[1] +# + ux * outputs_strides[2] +# + uy +# ) + +# outputs[output_index] = result.reduce_add() + bias[out_ch] + +# parallelize[conv](batch_size) + +# col_ptr.free() + +# @staticmethod +# fn backward[ +# tensor_id: Int, +# ug_shape: TensorShape, +# input_shape: TensorShape, +# kernel_shape: TensorShape, +# bias_shape: TensorShape, +# attributes: AttributeVector, +# ]( +# ug: Tensor[dtype], +# inputs: Tensor[dtype], +# kernel: Tensor[dtype], +# bias: Tensor[dtype], +# ) -> Tensor[dtype]: +# """ +# Backward operation of 2D convolution. + +# Upper gradient of shape: [batch, out_channels, uX, uY]. +# """ + +# alias padding = attributes["padding"].value().to_static[2]() +# alias stride = attributes["stride"].value().to_static[2]() +# alias dilation = attributes["dilation"].value().to_static[2]() +# alias padding_0 = padding[0] +# alias padding_1 = padding[1] +# alias stride_0 = stride[0] +# alias stride_1 = stride[1] +# alias dilation_0 = dilation[0] +# alias dilation_1 = dilation[1] + +# alias inputs_strides = input_shape.strides() +# alias kernel_strides = kernel_shape.strides() +# alias ug_strides = ug_shape.strides() +# alias inputs_strides_0 = inputs_strides[0] +# alias inputs_strides_1 = inputs_strides[1] +# alias inputs_strides_2 = inputs_strides[2] +# alias kernel_strides_0 = kernel_strides[0] +# alias kernel_strides_1 = kernel_strides[1] +# alias kernel_strides_2 = kernel_strides[2] +# alias ug_strides_0 = ug_strides[0] +# alias ug_strides_1 = ug_strides[1] +# alias ug_strides_2 = ug_strides[2] + +# alias input_shape_0 = input_shape[0] +# alias input_shape_1 = input_shape[1] +# alias input_shape_2 = input_shape[2] +# alias input_shape_3 = input_shape[3] +# alias kernel_shape_2 = kernel_shape[2] +# alias kernel_shape_3 = kernel_shape[3] +# alias ug_shape_0 = ug_shape[0] +# alias ug_shape_1 = ug_shape[1] +# alias ug_shape_2 = ug_shape[2] +# alias ug_shape_3 = ug_shape[3] + +# var res: Tensor[dtype] + +# @parameter +# if tensor_id == 0: +# # Inputs +# # Sum of upper gradient over batch, X, Y dimensions + +# res = Tensor[dtype](input_shape) + +# @parameter +# fn input_grad(batch: Int): +# for out_ch in range(ug_shape_1): +# for ux in range(ug_shape_2): +# for uy in range(ug_shape_3): # For all the element of ug +# var ix_base = ux * stride_0 - padding_0 +# var iy_base = uy * stride_1 - padding_1 + +# var ug_val = ug[ +# batch * ug_strides_0 +# + out_ch * ug_strides_1 +# + ux * ug_strides_2 +# + uy +# ] + +# for in_ch in range(input_shape_1): +# for kx in range(kernel_shape_2): +# for ky in range(kernel_shape_3): +# var ix = ix_base + kx * dilation_0 +# var iy = iy_base + ky * dilation_1 + +# if ( +# ix < 0 +# or iy < 0 +# or ix >= input_shape_2 +# or iy >= input_shape_3 +# ): +# continue + +# var kernel_index = ( +# out_ch * kernel_strides_0 +# + in_ch * kernel_strides_1 +# + kx * kernel_strides_2 +# + ky +# ) + +# var input_index = ( +# batch * inputs_strides_0 +# + in_ch * inputs_strides_1 +# + ix * inputs_strides_2 +# + iy +# ) +# res[input_index] += ( +# kernel[kernel_index] * ug_val +# ) + +# parallelize[input_grad](input_shape_0) + +# elif tensor_id == 1: +# # Kernel +# # Sum of upper gradient over batch and X, Y dimensions +# res = Tensor[dtype](kernel_shape) + +# @parameter +# fn kernel_grad(out_ch: Int): +# var channel_offset = out_ch * kernel_strides_0 +# for k in range(input_shape_1 * kernel_shape_2 * kernel_shape_3): +# var in_ch_kx_ky = divmod(k, kernel_shape_3) +# var in_ch = k // (kernel_shape_2 * kernel_shape_3) +# var kx = in_ch_kx_ky[0] % kernel_shape_2 +# var ky = in_ch_kx_ky[1] + +# # TODO: Cant vectorize since you are going different directions across input and upper grad +# # But theoretically could transpose or split somehow +# var result: Scalar[dtype] = 0 +# for batch in range(input_shape_0): +# for ux in range(ug_shape_2): +# for uy in range(ug_shape_3): +# var ix = ux * stride_0 - padding_0 + kx * dilation_0 +# var iy = uy * stride_1 - padding_1 + ky * dilation_1 + +# if ( +# ix < 0 +# or iy < 0 +# or ix >= input_shape_2 +# or iy >= input_shape_3 +# ): +# continue + +# var input_index = batch * inputs_strides_0 + in_ch * inputs_strides_1 + ix * inputs_strides_2 + iy +# var ug_index = batch * ug_strides_0 + out_ch * ug_strides_1 + ux * ug_strides_2 + uy + +# result += inputs[input_index] * ug[ug_index] + +# var kernel_index = channel_offset + k +# res[kernel_index] = result + +# parallelize[kernel_grad](ug_shape_1) + +# else: +# # Bias +# # Sum of upper gradient over batch and X, Y dimensions +# # out_channels == ug_shape[1] == bias_shape[0] +# res = Tensor[dtype](bias_shape) + +# # Psuedocode +# # For every channel in the bias tensor, +# # Iterate over the upper gradient across the batch +# # For each batch, sum the upper gradient across X, Y dimensions +# # Add the sum to the bias tensor + +# @parameter +# fn bias_grad(out_ch: Int): +# var channel_offset = out_ch * ug_strides_1 +# var sum: Scalar[dtype] = 0 +# for batch in range(ug_shape_0): +# var batch_offset = batch * ug_strides_0 + channel_offset + +# @parameter +# fn vec_sum[Nelts: Int](ux_uy: Int): +# sum += ug.load[Nelts](batch_offset + ux_uy).reduce_add() + +# vectorize[vec_sum, nelts, size = ug_shape_2 * ug_shape_3]() + +# res[out_ch] = sum + +# parallelize[bias_grad](ug_shape_1) + +# return res + + +fn convnd_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after a n-dimensional convolution operation. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The input ArrayShape, and the convolution parameters encoded in an ArrayShape. + + #### Constraints: + - The number of dimensions of the input ArrayShape must be 2, 3, or 4 for 1D, 2D, or 3D convolution respectively. + """ + var arg = args[0] # Input tensor + var params = array_shape_to_list(args[1]) # Convolution parameters + + var input_shape = arg.shape_node[].shape + var ndim = len(input_shape) - 1 + if ndim < 1 or ndim > 3: + raise Error( + "Input must be 2D, 3D, or 4D for 1D, 2D, or 3D convolution" + " respectively" + ) + + var in_channels = params[0] + var out_channels = params[1] + var groups = params[len(params) - 1] if len(params) > 2 + 4 * ndim else 1 + + if input_shape[0] != in_channels: + raise Error("Input channel dimension doesn't match in_channels") + + if in_channels % groups != 0 or out_channels % groups != 0: + raise Error("in_channels and out_channels must be divisible by groups") + + fn create_list(size: Int, val: Int) -> List[Int]: + var res = List[Int]() + for _ in range(size): + res.append(val) + return res + + var kernel_size = params[2 : 2 + ndim] + var stride = params[2 + ndim : 2 + 2 * ndim] if len( + params + ) > 2 + ndim else create_list(ndim, 1) + var padding = params[2 + 2 * ndim : 2 + 3 * ndim] if len( + params + ) > 2 + 2 * ndim else create_list(ndim, 0) + var dilation = params[2 + 3 * ndim : 2 + 4 * ndim] if len( + params + ) > 2 + 3 * ndim else create_list(ndim, 1) + + var new_shape = List[Int]() + new_shape.append(out_channels) + var out_channel_stride = 1 + for i in range(1, len(input_shape)): + out_channel_stride *= input_shape[i] + + for i in range(ndim): + var input_size = input_shape[i + 1] + var out_size = ( + input_size + 2 * padding[i] - dilation[i] * (kernel_size[i] - 1) - 1 + ) // stride[i] + 1 + if out_size <= 0: + raise "Calculated out size is not positive for dimension" + str(i) + new_shape.append(out_size) + + curr.setup(new_shape) + + +fn conv1d( + arg0: Array, + kernel: Array, + bias: Array, + in_channels: Int, + out_channels: Int, + kernel_size: Int, + stride: Int, + padding: Int, + dilation: Int, + groups: Int, +) raises -> Array: + fn fwd(inout curr: Array, args: List[Array]) raises: + var params = array_shape_to_list(curr.array_shape().args()[1]) + + setup_shape_and_data(curr) + + var in_channels = params[0] + var out_channels = params[1] + var kernel_size = params[2] + var stride = params[3] + var padding = params[4] + var dilation = params[5] + var groups = params[6] + + var in_channels_per_group = in_channels // groups + var out_channels_per_group = out_channels // groups + + # lets do naive for loops ot compute the conv1d + var input = contiguous(args[0]) + var kernel = contiguous(args[1]) + var bias = contiguous(args[2]) + + var out = curr + var out_shape = out.shape() + var out_data = out.data() + var input_data = input.data() + var kernel_data = kernel.data() + var bias_data = bias.data() + + var out_stride = out.stride() + var input_stride = input.stride() + var kernel_stride = kernel.stride() + + print("input:") + print(input) + print("kernel:") + print(kernel) + print("bias:") + print(bias) + + for i in range(out_shape[0]): + for j in range(out_shape[1]): + var start = j * stride - padding + var end = start + kernel_size * dilation + var sum = SIMD[dtype, 1](0) + for k in range(kernel_size): + var idx = i * input_stride[0] + ( + start + k * dilation + ) * input_stride[1] + var kernel_idx = j * kernel_stride[0] + k * kernel_stride[1] + sum += input_data[idx] * kernel_data[kernel_idx] + out_data[i * out_stride[0] + j * out_stride[1]] = ( + sum + bias_data[j] + ) + + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return List(grad) + + var arr_shape = setup_array_shape( + List( + arg0.array_shape(), + list_to_array_shape( + List( + in_channels, + out_channels, + kernel_size, + stride, + padding, + dilation, + groups, + ) + ), + ), + "convnd_shape", + convnd_shape, + ) + + var args = List(arg0, kernel, bias) + + return op_array(arr_shape, args, NA, "conv1d", fwd, default_jvp, vjp, False) + + +fn conv2d( + arg0: Array, + in_channels: Int, + out_channels: Int, + kernel_size: List[Int], + stride: List[Int], + padding: List[Int], + dilation: List[Int], + groups: Int, +) raises -> Array: + fn fwd(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return List(grad) + + var arr_shape = setup_array_shape( + List( + arg0.array_shape(), + list_to_array_shape( + concat_lists( + List(in_channels), + List(out_channels), + kernel_size, + stride, + padding, + dilation, + groups, + ) + ), + ), + "convnd_shape", + convnd_shape, + ) + + return op_array(arr_shape, arg0, NA, "conv2d", fwd, default_jvp, vjp, False) + + +fn conv3d( + arg0: Array, + in_channels: Int, + out_channels: Int, + kernel_size: List[Int], + stride: List[Int], + padding: List[Int], + dilation: List[Int], + groups: Int, +) raises -> Array: + fn fwd(inout curr: Array, args: List[Array]) raises: + setup_shape_and_data(curr) + + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return List(grad) + + var arr_shape = setup_array_shape( + List( + arg0.array_shape(), + list_to_array_shape( + concat_lists( + List(in_channels), + List(out_channels), + kernel_size, + stride, + padding, + dilation, + groups, + ) + ), + ), + "convnd_shape", + convnd_shape, + ) + + return op_array(arr_shape, arg0, NA, "conv3d", fwd, default_jvp, vjp, False) diff --git a/endia/functional/spacial_ops/max_pool_op.mojo b/endia/functional/spacial_ops/max_pool_op.mojo new file mode 100644 index 0000000..e69de29 diff --git a/endia/functional/test_.mojo b/endia/functional/test_.mojo new file mode 100644 index 0000000..e69de29 diff --git a/endia/functional/unary_ops/__init__.mojo b/endia/functional/unary_ops/__init__.mojo new file mode 100644 index 0000000..bbf236c --- /dev/null +++ b/endia/functional/unary_ops/__init__.mojo @@ -0,0 +1,19 @@ +from .abs_op import to_abs +from .acos_op import acos +from .asin_op import asin +from .atan_op import atan +from .cos_op import cos +from .cosh_op import cosh +from .exp_op import exp +from .log_op import log +from .neg_op import neg +from .reciprocal_op import reciprocal +from .relu_op import relu +from .sigmoid_op import sigmoid +from .square_op import square +from .sign_op import sign +from .sin_op import sin +from .sinh_op import sinh +from .sqrt_op import sqrt +from .tan_op import tan +from .tanh_op import tanh diff --git a/endia/functional/unary_ops/_utils.mojo b/endia/functional/unary_ops/_utils.mojo new file mode 100644 index 0000000..564f6ae --- /dev/null +++ b/endia/functional/unary_ops/_utils.mojo @@ -0,0 +1,121 @@ +from endia import Array +from endia.functional._utils import ( + contiguous, + op_array, + setup_array_shape, + copy_shape, +) +from endia.utils import NA + + +trait DifferentiableUnaryOp: + @staticmethod + fn fwd(arg0: Array) raises -> Array: + ... + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + ... + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + ... + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + ... + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + ... + + +fn unary_op_array( + arg0: Array, + name: String, + fwd: fn (inout Array, List[Array]) raises -> None, + jvp: fn (List[Array], List[Array]) raises -> Array, + vjp: fn (List[Array], Array, Array) raises -> List[Array], + inplace_op: Optional[ + fn ( + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ] + ] = None, +) raises -> Array: + var arr_shape = setup_array_shape( + arg0.array_shape(), + "copy_shape", + copy_shape, + ) + + return op_array(arr_shape, arg0, NA, name, fwd, jvp, vjp, False, inplace_op) + + +fn execute_unary_op(inout curr: Array, args: List[Array]) raises: + var simd_op = curr.uew()[0] + var arg0 = contiguous(args[0]) + var arg0_data = arg0.data() + var curr_data = curr.data() + var rest_size = curr.size() % nelts[dtype]() + var end = curr.size() - rest_size + + if curr.is_complex(): + for i in range(0, end, nelts[dtype]()): + var idx_real = i * 2 + # var idx_imag = idx_real + 1 + var data0 = arg0_data.load[width = nelts[dtype]() * 2]( + idx_real + ).deinterleave() + var res_deinterleaved = simd_op(data0[0], data0[1]) + var res = res_deinterleaved[0].interleave(res_deinterleaved[1]) + curr_data.store[width = 2 * ((nelts[dtype]() * 2) // 2)]( + idx_real, res + ) + if rest_size != 0: + var rest_simd0_real = SIMD[dtype, nelts[dtype]() * 2 // 2]() + var rest_simd0_imag = SIMD[dtype, nelts[dtype]() * 2 // 2]() + + for i in range(rest_size): + var idx_real = (end + i) * 2 + var idx_imag = idx_real + 1 + rest_simd0_real[i] = arg0_data.load(idx_real) + rest_simd0_imag[i] = arg0_data.load(idx_imag) + var res = simd_op( + rest_simd0_real, + rest_simd0_imag, + ) + for i in range(rest_size): + var idx_real = (end + i) * 2 + var idx_imag = idx_real + 1 + curr_data.store(idx_real, res[0][i]) + curr_data.store(idx_imag, res[1][i]) + else: + for i in range(0, end, nelts[dtype]()): + var res = simd_op( + arg0_data.load[width = nelts[dtype]() * 2 // 2](i), + SIMD[dtype, nelts[dtype]() * 2 // 2](0), + )[0] + curr_data.store[width = nelts[dtype]() * 2 // 2](i, res) + + # now we vectorize along the last dimesion + if rest_size != 0: + var rest_simd0 = SIMD[dtype, nelts[dtype]() * 2 // 2]() + for i in range(rest_size): + rest_simd0[i] = arg0_data.load(i + end) + var res = simd_op( + rest_simd0, SIMD[dtype, nelts[dtype]() * 2 // 2]() + )[0] + for i in range(end, curr.size()): + curr_data.store(i, res[i - end]) + + _ = arg0 diff --git a/endia/functional/unary_ops/abs_op.mojo b/endia/functional/unary_ops/abs_op.mojo new file mode 100644 index 0000000..719806a --- /dev/null +++ b/endia/functional/unary_ops/abs_op.mojo @@ -0,0 +1,144 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) + +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import sign + +####-----------------------------------------------------------------------------------------------------------------#### +#### Absolute Value +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Abs(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the absolute value of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the absolute value of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = to_abs(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "to_abs", Abs.__call__, Abs.jvp, Abs.vjp, Abs.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the absolute value function. + + Implements forward-mode automatic differentiation for the absolute value function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the absolute value function. + + #### Note: + The Jacobian-vector product for the absolute value is computed as sign(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return sign(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the absolute value function. + + Implements reverse-mode automatic differentiation for the absolute value function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the absolute value is computed as sign(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return sign(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the absolute value of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the absolute value of the complex number as a tuple. + """ + # var real + var real = math.sqrt(arg0_real**2 + arg0_imag**2) + return real, SIMD[dtype, nelts[dtype]() * 2 // 2](0) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise absolute value computation of an array. + + Computes the absolute value of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn to_abs(arg0: Array) raises -> Array: + """Computes the absolute value of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the absolute value of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = to_abs(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return real(Abs.fwd(arg0)) diff --git a/endia/functional/unary_ops/acos_op.mojo b/endia/functional/unary_ops/acos_op.mojo new file mode 100644 index 0000000..6bc37a9 --- /dev/null +++ b/endia/functional/unary_ops/acos_op.mojo @@ -0,0 +1,142 @@ +from endia import Array +from endia.functional._utils import ( + setup_shape_and_data, +) +from endia.utils.aliases import dtype, nelts, NA +import math + +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import sin + + +struct ACos(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the arccosine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the arccosine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = acos(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + if arg0.is_complex(): + raise "FIX: Complex numbers are not supported for the arccosine function yet." + return unary_op_array( + arg0, "acos", ACos.__call__, ACos.jvp, ACos.vjp, ACos.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the arccosine function. + + Implements forward-mode automatic differentiation for the arccosine function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the arccosine function. + + #### Note: + The Jacobian-vector product for arccosine is computed as -1 / sqrt(1 - x^2) * dx, + where x is the primal input and dx is the tangent vector. + """ + return -1 / sqrt(1 - primals[0] ** 2) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the arccosine function. + + Implements reverse-mode automatic differentiation for the arccosine function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for arccosine is computed as -1 / sqrt(1 - x^2) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return -1 / sqrt(1 - primals[0] ** 2) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the arccosine of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the arccosine of the complex number as a tuple. + """ + var real = math.acos(arg0_real) + var imag = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise arccosine computation of an array. + + Computes the arccosine of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn acos(arg0: Array) raises -> Array: + """Computes the arccosine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the arccosine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = acos(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return ACos.fwd(arg0) diff --git a/endia/functional/unary_ops/asin_op.mojo b/endia/functional/unary_ops/asin_op.mojo new file mode 100644 index 0000000..b93eb6e --- /dev/null +++ b/endia/functional/unary_ops/asin_op.mojo @@ -0,0 +1,134 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import cos + + +struct ASin(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the arcsine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the arcsine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = asin(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + if arg0.is_complex(): + raise "FIX: Complex numbers are not supported for the arcsine function yet." + return unary_op_array( + arg0, "asin", ASin.__call__, ASin.jvp, ASin.vjp, ASin.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the arcsine function. + + Implements forward-mode automatic differentiation for the arcsine function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the arcsine function. + + """ + return 1 / cos(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the arcsine function. + + Implements reverse-mode automatic differentiation for the arcsine function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + """ + return grad / sqrt(1 - primals[0] ** 2) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the arcsine of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the arcsine of the complex number as a tuple. + """ + var real = math.asin(arg0_real) * math.cosh(arg0_imag) + var imag = -math.acos(arg0_real) * math.sinh(arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise arcsine computation of an array. + + Computes the arcsine of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn asin(arg0: Array) raises -> Array: + """Computes the arcsine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the arcsine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = asin(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return ASin.fwd(arg0) diff --git a/endia/functional/unary_ops/atan_op.mojo b/endia/functional/unary_ops/atan_op.mojo new file mode 100644 index 0000000..c345489 --- /dev/null +++ b/endia/functional/unary_ops/atan_op.mojo @@ -0,0 +1,136 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +struct ATan(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the arctangent of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the arctangent of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = atan(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + if arg0.is_complex(): + raise "FIX: Complex numbers are not supported for the arctan function yet." + return unary_op_array( + arg0, "atan", ATan.__call__, ATan.jvp, ATan.vjp, ATan.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the arctangent function. + + Implements forward-mode automatic differentiation for the arctangent function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the arctangent function. + + #### Note: + The Jacobian-vector product for the arctangent is computed as 1 / (1 + x^2) * dx, + where x is the primal input and dx is the tangent vector. + """ + return 1 / (1 + square(primals[0])) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the arctangent function. + + Implements reverse-mode automatic differentiation for the arctangent function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + """ + return grad / (1 + square(primals[0])) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the arctangent of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the arctangent of the complex number as a tuple. + """ + var real = math.atan(arg0_real) + var imag = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise arctangent computation of an array. + + Computes the arctangent of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn atan(arg0: Array) raises -> Array: + """Computes the arctangent of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the arctangent of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = atan(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return ATan.fwd(arg0) diff --git a/endia/functional/unary_ops/cos_op.mojo b/endia/functional/unary_ops/cos_op.mojo new file mode 100644 index 0000000..e7daa1b --- /dev/null +++ b/endia/functional/unary_ops/cos_op.mojo @@ -0,0 +1,144 @@ +from endia import Array +from endia.functional._utils import ( + setup_shape_and_data, +) +from endia.utils.aliases import dtype, nelts, NA +import math + +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import sin + +####-----------------------------------------------------------------------------------------------------------------#### +#### Cos +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Cos(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the cosine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the cosine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = cos(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "cos", Cos.__call__, Cos.jvp, Cos.vjp, Cos.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the cosine function. + + Implements forward-mode automatic differentiation for the cosine function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the cosine function. + + #### Note: + The Jacobian-vector product for cosine is computed as -sin(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return -sin(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the cosine function. + + Implements reverse-mode automatic differentiation for the cosine function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for cosine is computed as -sin(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return -sin(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the cosine of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the cosine of the complex number as a tuple. + """ + var real = math.cos(arg0_real) * math.cosh(arg0_imag) + var imag = -math.sin(arg0_real) * math.sinh(arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise cosine computation of an array. + + Computes the cosine of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn cos(arg0: Array) raises -> Array: + """Computes the cosine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the cosine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = cos(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Cos.fwd(arg0) diff --git a/endia/functional/unary_ops/cosh_op.mojo b/endia/functional/unary_ops/cosh_op.mojo new file mode 100644 index 0000000..8ad6af8 --- /dev/null +++ b/endia/functional/unary_ops/cosh_op.mojo @@ -0,0 +1,140 @@ +from endia import Array +from endia.functional._utils import ( + setup_shape_and_data, +) +from endia.utils.aliases import dtype, nelts, NA +import math + +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import sin, sinh + + +struct CosH(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the hyperbolic cosine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the hyperbolic cosine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = cosh(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "cosh", CosH.__call__, CosH.jvp, CosH.vjp, CosH.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the hyperbolic cosine function. + + Implements forward-mode automatic differentiation for the hyperbolic cosine function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the hyperbolic cosine function. + + #### Note: + The Jacobian-vector product for hyperbolic cosine is computed as sinh(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return sinh(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the hyperbolic cosine function. + + Implements reverse-mode automatic differentiation for the hyperbolic cosine function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for hyperbolic cosine is computed as sinh(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return sinh(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the hyperbolic cosine of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the hyperbolic cosine of the complex number as a tuple. + """ + var real = math.cosh(arg0_real) * math.cos(arg0_imag) + var imag = math.sinh(arg0_real) * math.sin(arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise hyperbolic cosine computation of an array. + + Computes the hyperbolic cosine of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn cosh(arg0: Array) raises -> Array: + """Computes the hyperbolic cosine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the hyperbolic cosine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = cosh(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return CosH.fwd(arg0) diff --git a/endia/functional/unary_ops/exp_op.mojo b/endia/functional/unary_ops/exp_op.mojo new file mode 100644 index 0000000..845f398 --- /dev/null +++ b/endia/functional/unary_ops/exp_op.mojo @@ -0,0 +1,144 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Exponential +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Exp(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the exponential of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the exponential of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = exp(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "exp", Exp.__call__, Exp.jvp, Exp.vjp, Exp.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the exponential function. + + Implements forward-mode automatic differentiation for the exponential function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the exponential function. + + #### Note: + The Jacobian-vector product for the exponential is computed as exp(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return exp(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the exponential function. + + Implements reverse-mode automatic differentiation for the exponential function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the exponential is computed as exp(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return exp(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the exponential of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the exponential of the complex number as a tuple. + """ + # return math.exp(arg0_real), SIMD[dtype, nelts[dtype]() * 2 // 2](0) + var real = math.exp(arg0_real) * math.cos(arg0_imag) + var imag = math.exp(arg0_real) * math.sin(arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise exponential computation of an array. + + Computes the exponential of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn exp(arg0: Array) raises -> Array: + """Computes the exponential of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the exponential of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = exp(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Exp.fwd(arg0) diff --git a/endia/functional/unary_ops/log_op.mojo b/endia/functional/unary_ops/log_op.mojo new file mode 100644 index 0000000..09b65be --- /dev/null +++ b/endia/functional/unary_ops/log_op.mojo @@ -0,0 +1,144 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + +####-----------------------------------------------------------------------------------------------------------------#### +#### Logarithm +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Log(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the natural logarithm of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the natural logarithm of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = log(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "log", Log.__call__, Log.jvp, Log.vjp, Log.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the natural logarithm function. + + Implements forward-mode automatic differentiation for the natural logarithm function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the natural logarithm function. + + #### Note: + The Jacobian-vector product for the natural logarithm is computed as dx / x, + where x is the primal input and dx is the tangent vector. + """ + return tangents[0] / primals[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the natural logarithm function. + + Implements reverse-mode automatic differentiation for the natural logarithm function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the natural logarithm is computed as grad / x, + where x is the primal input and grad is the incoming gradient. + """ + return grad / primals[0] + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the natural logarithm of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the natural logarithm of the complex number as a tuple. + """ + var real = math.log( + math.sqrt(arg0_real * arg0_real + arg0_imag * arg0_imag) + ) + var imag = math.atan2(arg0_imag, arg0_real) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise natural logarithm computation of an array. + + Computes the natural logarithm of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn log(arg0: Array) raises -> Array: + """Computes the natural logarithm of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the natural logarithm of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = log(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Log.fwd(arg0) diff --git a/endia/functional/unary_ops/neg_op.mojo b/endia/functional/unary_ops/neg_op.mojo new file mode 100644 index 0000000..41fa8d1 --- /dev/null +++ b/endia/functional/unary_ops/neg_op.mojo @@ -0,0 +1,142 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math + +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + +####-----------------------------------------------------------------------------------------------------------------#### +#### Negation +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Neg(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the negation of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the negation of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = neg(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "neg", Neg.__call__, Neg.jvp, Neg.vjp, Neg.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the negation function. + + Implements forward-mode automatic differentiation for the negation function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the negation function. + + #### Note: + The Jacobian-vector product for negation is computed as -dx, + where dx is the tangent vector. + """ + return -tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the negation function. + + Implements reverse-mode automatic differentiation for the negation function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for negation is computed as -grad. + """ + return -grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the negation of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the negation of the complex number as a tuple. + """ + var real = -arg0_real + var imag = -arg0_imag + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise negation computation of an array. + + Computes the negation of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn neg(arg0: Array) raises -> Array: + """Computes the negation of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the negation of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = neg(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Neg.fwd(arg0) diff --git a/endia/functional/unary_ops/reamde.md b/endia/functional/unary_ops/reamde.md new file mode 100644 index 0000000..e3771a4 --- /dev/null +++ b/endia/functional/unary_ops/reamde.md @@ -0,0 +1 @@ +# Unary Operations \ No newline at end of file diff --git a/endia/functional/unary_ops/reciprocal_op.mojo b/endia/functional/unary_ops/reciprocal_op.mojo new file mode 100644 index 0000000..41abebe --- /dev/null +++ b/endia/functional/unary_ops/reciprocal_op.mojo @@ -0,0 +1,147 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Reciprocal +####-----------------------------------------------------------------------------------------------------------------##### +struct Reciprocal(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the reciprocal of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the reciprocal of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = reciprocal(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, + "reciprocal", + Reciprocal.__call__, + Reciprocal.jvp, + Reciprocal.vjp, + Reciprocal.unary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the reciprocal function. + + Implements forward-mode automatic differentiation for the reciprocal function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the reciprocal function. + + #### Note: + The Jacobian-vector product for the reciprocal is computed as -x^2 * dx / x^2, + where x is the primal input and dx is the tangent vector. + """ + return -primals[0] ** -2 + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the reciprocal function. + + Implements reverse-mode automatic differentiation for the reciprocal function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the reciprocal is computed as -grad / x^2, + where x is the primal input and grad is the incoming gradient. + """ + return -grad / square(primals[0]) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the reciprocal of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the reciprocal of the complex number as a tuple. + """ + var denom = arg0_real * arg0_real + arg0_imag * arg0_imag + var real = arg0_real / denom + var imag = -arg0_imag / denom + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise reciprocal computation of an array. + + Computes the reciprocal of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn reciprocal(arg0: Array) raises -> Array: + """Computes the reciprocal of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the reciprocal of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = reciprocal(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Reciprocal.fwd(arg0) diff --git a/endia/functional/unary_ops/relu_op.mojo b/endia/functional/unary_ops/relu_op.mojo new file mode 100644 index 0000000..5d63000 --- /dev/null +++ b/endia/functional/unary_ops/relu_op.mojo @@ -0,0 +1,147 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import ge_zero + + +####-----------------------------------------------------------------------------------------------------------------#### +#### ReLU +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Relu(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the rectified linear unit (ReLU) of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the ReLU of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = relu(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + if arg0.is_complex(): + raise "ReLU function does not support complex arguments." + + return unary_op_array( + arg0, "relu", Relu.__call__, Relu.jvp, Relu.vjp, Relu.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the ReLU function. + + Implements forward-mode automatic differentiation for the ReLU function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the ReLU function. + + #### Note: + The Jacobian-vector product for ReLU is computed as ge_zero(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return ge_zero(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the ReLU function. + + Implements reverse-mode automatic differentiation for the ReLU function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for ReLU is computed as ge_zero(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return ge_zero(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the rectified linear unit (ReLU) of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the ReLU of the complex number as a tuple. + """ + var real = max(arg0_real, 0) + var imag = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise ReLU computation of an array. + + Computes the ReLU of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn relu(arg0: Array) raises -> Array: + """Computes the rectified linear unit (ReLU) of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the ReLU of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = relu(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Relu.fwd(arg0) diff --git a/endia/functional/unary_ops/sigmoid_op.mojo b/endia/functional/unary_ops/sigmoid_op.mojo new file mode 100644 index 0000000..2e5bb31 --- /dev/null +++ b/endia/functional/unary_ops/sigmoid_op.mojo @@ -0,0 +1,150 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Sigmoid Function +####-----------------------------------------------------------------------------------------------------------------#### +struct Sigmoid(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the sigmoid function of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the sigmoid function of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sigmoid(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + if arg0.is_complex(): + raise "Sigmoid function does not support complex arguments." + + return unary_op_array( + arg0, + "sigmoid", + Sigmoid.__call__, + Sigmoid.jvp, + Sigmoid.vjp, + Sigmoid.unary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the sigmoid function. + + Implements forward-mode automatic differentiation for the sigmoid function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the sigmoid function. + + #### Note: + The Jacobian-vector product for the sigmoid is computed as x * (1 - x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return primals[0] * (1 - primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the sigmoid function. + + Implements reverse-mode automatic differentiation for the sigmoid function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the sigmoid is computed as x * (1 - x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return out * (1 - out) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the sigmoid function of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the sigmoid function of the complex number as a tuple. + """ + var res = SIMD[dtype, nelts[dtype]() * 2 // 2]() + for i in range(nelts[dtype]()): + res[i] = 1 / (1 + math.exp(-arg0_real[i])) + return res, SIMD[dtype, nelts[dtype]() * 2 // 2](0) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise sigmoid function computation of an array. + + Computes the sigmoid function of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn sigmoid(arg0: Array) raises -> Array: + """Computes the sigmoid function of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the sigmoid function of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sigmoid(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Sigmoid.fwd(arg0) diff --git a/endia/functional/unary_ops/sign_op.mojo b/endia/functional/unary_ops/sign_op.mojo new file mode 100644 index 0000000..61dc8a0 --- /dev/null +++ b/endia/functional/unary_ops/sign_op.mojo @@ -0,0 +1,109 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Sign Function +####-----------------------------------------------------------------------------------------------------------------#### +struct Sign(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the sign function of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the sign function of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sign(a) + print(result) + ``` + + #### Note: + This function supports: + - Complex valued arguments. + """ + return unary_op_array( + arg0, "sign", Sign.__call__, Sign.jvp, Sign.vjp, Sign.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return default_vjp(primals, grad, out) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the sign function of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the sign function of the complex number as a tuple. + """ + var norm = math.sqrt(arg0_real * arg0_real + arg0_imag * arg0_imag) + var real = arg0_real / norm + var imag = arg0_imag / norm + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise sign function computation of an array. + + Computes the sign function of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn sign(arg0: Array) raises -> Array: + """Computes the sign function of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the sign function of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sign(a) + print(result) + ``` + + #### Note: + This function supports: + - Complex valued arguments. + """ + return Sign.fwd(arg0) diff --git a/endia/functional/unary_ops/sin_op.mojo b/endia/functional/unary_ops/sin_op.mojo new file mode 100644 index 0000000..a1da28c --- /dev/null +++ b/endia/functional/unary_ops/sin_op.mojo @@ -0,0 +1,143 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import cos + +####-----------------------------------------------------------------------------------------------------------------#### +#### Sin +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Sin(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the sine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the sine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sin(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "sin", Sin.__call__, Sin.jvp, Sin.vjp, Sin.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the sine function. + + Implements forward-mode automatic differentiation for the sine function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the sine function. + + #### Note: + The Jacobian-vector product for sine is computed as cos(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return cos(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the sine function. + + Implements reverse-mode automatic differentiation for the sine function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for sine is computed as cos(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return cos(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the sine of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the sine of the complex number as a tuple. + """ + var real = math.sin(arg0_real) * math.cosh(arg0_imag) + var imag = math.cos(arg0_real) * math.sinh(arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise sine computation of an array. + + Computes the sine of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn sin(arg0: Array) raises -> Array: + """Computes the sine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the sine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sin(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Sin.fwd(arg0) diff --git a/endia/functional/unary_ops/sinh_op.mojo b/endia/functional/unary_ops/sinh_op.mojo new file mode 100644 index 0000000..d217903 --- /dev/null +++ b/endia/functional/unary_ops/sinh_op.mojo @@ -0,0 +1,139 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op +from endia.functional import cos, cosh + + +struct SinH(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the hyperbolic sine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the hyperbolic sine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sinh(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "sinh", SinH.__call__, SinH.jvp, SinH.vjp, SinH.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the hyperbolic sine function. + + Implements forward-mode automatic differentiation for the hyperbolic sine function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the hyperbolic sine function. + + #### Note: + The Jacobian-vector product for hyperbolic sine is computed as cosh(x) * dx, + where x is the primal input and dx is the tangent vector. + """ + return cosh(primals[0]) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the hyperbolic sine function. + + Implements reverse-mode automatic differentiation for the hyperbolic sine function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for hyperbolic sine is computed as cosh(x) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return cosh(primals[0]) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the hyperbolic sine of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the hyperbolic sine of the complex number as a tuple. + """ + var real = math.sinh(arg0_real) * math.cos(arg0_imag) + var imag = math.cosh(arg0_real) * math.sin(arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise hyperbolic sine computation of an array. + + Computes the hyperbolic sine of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn sinh(arg0: Array) raises -> Array: + """Computes the hyperbolic sine of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the hyperbolic sine of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sinh(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return SinH.fwd(arg0) diff --git a/endia/functional/unary_ops/sqrt_op.mojo b/endia/functional/unary_ops/sqrt_op.mojo new file mode 100644 index 0000000..8576ff5 --- /dev/null +++ b/endia/functional/unary_ops/sqrt_op.mojo @@ -0,0 +1,143 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + +####-----------------------------------------------------------------------------------------------------------------#### +#### Square Root +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Sqrt(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the square root of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the square root of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sqrt(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "sqrt", Sqrt.__call__, Sqrt.jvp, Sqrt.vjp, Sqrt.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the square root function. + + Implements forward-mode automatic differentiation for the square root function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the square root function. + + #### Note: + The Jacobian-vector product for the square root is computed as dx / (2 * sqrt(x)), + where x is the primal input and dx is the tangent vector. + """ + return tangents[0] / (2 * sqrt(primals[0])) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the square root function. + + Implements reverse-mode automatic differentiation for the square root function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the square root is computed as grad / (2 * sqrt(x)), + where x is the primal input and grad is the incoming gradient. + """ + return grad / (2 * sqrt(primals[0])) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the square root of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the square root of the complex number as a tuple. + """ + var r = math.sqrt(arg0_real * arg0_real + arg0_imag * arg0_imag) + var real = math.sqrt((r + arg0_real) / 2) + var imag = math.copysign(math.sqrt((r - arg0_real) / 2), arg0_imag) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise square root computation of an array. + + Computes the square root of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn sqrt(arg0: Array) raises -> Array: + """Computes the square root of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the square root of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = sqrt(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Sqrt.fwd(arg0) diff --git a/endia/functional/unary_ops/square_op.mojo b/endia/functional/unary_ops/square_op.mojo new file mode 100644 index 0000000..ea035b8 --- /dev/null +++ b/endia/functional/unary_ops/square_op.mojo @@ -0,0 +1,148 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + +####-----------------------------------------------------------------------------------------------------------------#### +#### Square +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Square(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the square of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the square of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = square(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, + "square", + Square.__call__, + Square.jvp, + Square.vjp, + Square.unary_simd_op, + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the square function. + + Implements forward-mode automatic differentiation for the square function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the square function. + + #### Note: + The Jacobian-vector product for the square is computed as x * dx, + where x is the primal input and dx is the tangent vector. + """ + return 2 * primals[0] * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the square function. + + Implements reverse-mode automatic differentiation for the square function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the square is computed as x * grad, + where x is the primal input and grad is the incoming gradient. + """ + return 2 * primals[0] * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the square of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the square of the complex number as a tuple. + """ + # return arg0_real * arg0_real, SIMD[dtype, nelts[dtype]() * 2 // 2](0) + var real = arg0_real * arg0_real - arg0_imag * arg0_imag + var imag = 2 * arg0_real * arg0_imag + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise square computation of an array. + + Computes the square of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn square(arg0: Array) raises -> Array: + """Computes the square of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the square of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = square(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Square.fwd(arg0) diff --git a/endia/functional/unary_ops/tan_op.mojo b/endia/functional/unary_ops/tan_op.mojo new file mode 100644 index 0000000..39f5f2d --- /dev/null +++ b/endia/functional/unary_ops/tan_op.mojo @@ -0,0 +1,132 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +struct Tan(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the tangent of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the tangent of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = tan(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + if arg0.is_complex(): + raise "FIX: Complex numbers are not supported for the tan function yet." + return unary_op_array( + arg0, "tan", Tan.__call__, Tan.jvp, Tan.vjp, Tan.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the tangent function. + + Implements forward-mode automatic differentiation for the tangent function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the tangent function. + """ + return 1 + square(tan(primals[0])) * tangents[0] + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the tangent function. + + Implements reverse-mode automatic differentiation for the tangent function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + """ + return grad * (1 + square(out)) + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the tangent of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the tangent of the complex number as a tuple. + """ + var real = math.tan(arg0_real) + var imag = SIMD[dtype, nelts[dtype]() * 2 // 2](0) + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise tangent computation of an array. + + Computes the tangent of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn tan(arg0: Array) raises -> Array: + """Computes the tangent of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the tangent of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = tan(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Tan.fwd(arg0) diff --git a/endia/functional/unary_ops/tanh_op.mojo b/endia/functional/unary_ops/tanh_op.mojo new file mode 100644 index 0000000..da43c09 --- /dev/null +++ b/endia/functional/unary_ops/tanh_op.mojo @@ -0,0 +1,144 @@ +from endia import Array +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + setup_shape_and_data, +) +from ._utils import DifferentiableUnaryOp, unary_op_array, execute_unary_op + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Tan +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Tanh(DifferentiableUnaryOp): + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """Computes the hyperbolic tangent of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the hyperbolic tangent of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = tanh(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return unary_op_array( + arg0, "tanh", Tanh.__call__, Tanh.jvp, Tanh.vjp, Tanh.unary_simd_op + ) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + """Computes the Jacobian-vector product for the hyperbolic tangent function. + + Implements forward-mode automatic differentiation for the hyperbolic tangent function. + + Args: + primals: A list containing the primal input array. + tangents: A list containing the tangent vector. + + Returns: + The Jacobian-vector product for the hyperbolic tangent function. + + #### Note: + The Jacobian-vector product for the hyperbolic tangent is computed as (1 - tanh(x)^2) * dx, + where x is the primal input and dx is the tangent vector. + """ + return 1 - square(tanh(primals[0])) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the hyperbolic tangent function. + + Implements reverse-mode automatic differentiation for the hyperbolic tangent function. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for the hyperbolic tangent is computed as (1 - tanh(x)^2) * grad, + where x is the primal input and grad is the incoming gradient. + """ + return (1 - square(tanh(primals[0]))) * grad + + @staticmethod + fn unary_simd_op( + arg0_real: SIMD[dtype, nelts[dtype]() * 2 // 2], + arg0_imag: SIMD[dtype, nelts[dtype]() * 2 // 2], + ) -> Tuple[ + SIMD[dtype, nelts[dtype]() * 2 // 2], + SIMD[dtype, nelts[dtype]() * 2 // 2], + ]: + """ + Low-level function to compute the hyperbolic tangent of a complex number represented as SIMD vectors. + + Args: + arg0_real: The real part of the complex number. + arg0_imag: The imaginary part of the complex number. + + Returns: + The real and imaginary parts of the hyperbolic tangent of the complex number as a tuple. + """ + var denom = math.cosh(2 * arg0_real) + math.cos(2 * arg0_imag) + var real = math.sinh(2 * arg0_real) / denom + var imag = math.sin(2 * arg0_imag) / denom + return real, imag + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for element-wise hyperbolic tangent computation of an array. + + Computes the hyperbolic tangent of each element in the input array and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the input array and sets up the data accordingly. + """ + setup_shape_and_data(curr) + execute_unary_op(curr, args) + + +fn tanh(arg0: Array) raises -> Array: + """Computes the hyperbolic tangent of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + An array containing the hyperbolic tangent of each element in the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = tanh(a) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Tanh.fwd(arg0) diff --git a/endia/functional/view_ops/__init__.mojo b/endia/functional/view_ops/__init__.mojo new file mode 100644 index 0000000..8cf76ad --- /dev/null +++ b/endia/functional/view_ops/__init__.mojo @@ -0,0 +1,13 @@ +from .array_slice_op import array_slice +from .as_strided_op import as_strided +from .detach_op import detach +from .expand_op import expand, expand_as, broadcast_to +from .imag_op import imag +from .pad_op import pad +from .permute_op import permute, swapaxes, swapdims, transpose +from .real_op import real +from .squeeze_op import squeeze +from .unsqueeze_op import unsqueeze +from .view_as_imag_op import view_as_imag +from .view_as_real_op import view_as_real +from .view_op import reshape, view, flatten diff --git a/endia/functional/view_ops/_utils.mojo b/endia/functional/view_ops/_utils.mojo new file mode 100644 index 0000000..2c6da12 --- /dev/null +++ b/endia/functional/view_ops/_utils.mojo @@ -0,0 +1,23 @@ +from endia import Array + + +trait DifferentiableViewOp: + """ + Trait for binary operations that are differentiable. That mean they define methods for both forward and reverse mode automatic differentiation. + """ + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + ... + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + ... + + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + ... + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + ... diff --git a/endia/functional/view_ops/array_slice_op.mojo b/endia/functional/view_ops/array_slice_op.mojo new file mode 100644 index 0000000..033ec45 --- /dev/null +++ b/endia/functional/view_ops/array_slice_op.mojo @@ -0,0 +1,149 @@ +from endia import Array +from endia.utils import ( + array_shape_to_slices, + slices_to_array_shape, + compute_shape, + setup_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) + +from endia.functional import pad +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# Slice +####--------------------------------------------------------------------------------------------------------------------#### + + +struct ArraySlice(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after slicing. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to slice, and the list of slices encoded in an ArrayShape via the array_shape_to_slices function. + """ + # we have the slices as the second argument in the form of an arrayshape + var arg = args[0] + var slices = array_shape_to_slices(args[1]) + var sliced_shape = List[Int]() + var sliced_stride = List[Int]() + var storage_offset = 0 + + for i in range(arg.shape_node[].ndim): + var slice = slices[i] if i < len(slices) else Slice( + 0, arg.shape_node[].shape[i], 1 + ) + slice.start = ( + max(0, slice.start) + % (arg.shape_node[].shape[i] + 1) if slice.step + > 0 else min( + arg.shape_node[].shape[i], + slice.end % (arg.shape_node[].shape[i] + 1), + ) + - 1 + ) + slice.end = ( + min(arg.shape_node[].shape[i], slice.end) + % (arg.shape_node[].shape[i] + 1) if slice.step + > 0 else max(0, slice.start) - 1 + ) + sliced_shape.append( + (slice.end - slice.start + slice.step - 1) // slice.step + ) + sliced_stride.append(arg.shape_node[].stride[i] * slice.step) + storage_offset += slice.start * arg.shape_node[].stride[i] + + curr.setup(sliced_shape, sliced_stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the slice operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the slice view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + curr.base_(args[0].base()) + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the slice operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for slice is computed by padding the gradient with zeros along the axes that were sliced. + """ + var slices = array_shape_to_slices(out.array_shape().args()[1]) + return List(pad(grad, primals[0].array_shape(), slices)) + + @staticmethod + fn fwd(arg0: Array, slices: List[Slice]) raises -> Array: + """ + Slices the input array based on the given slices. + + Args: + arg0: The input array. + slices: The slices to apply. + + Returns: + The sliced array. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), slices_to_array_shape(slices)), + "slice_shape", + # sliced_shape, + ArraySlice.compute_shape, + ) + + return op_array( + arr_shape, + List(arg0), + NA, + "slice", + ArraySlice.__call__, + ArraySlice.jvp, + ArraySlice.vjp, + True, + ) + + +fn array_slice(arg0: Array, slices: List[Slice]) raises -> Array: + """ + Slices the input array based on the given slices. + + Args: + arg0: The input array. + slices: The slices to apply. + + Returns: + The sliced array. + """ + return ArraySlice.fwd(arg0, slices) diff --git a/endia/functional/view_ops/as_strided_op.mojo b/endia/functional/view_ops/as_strided_op.mojo new file mode 100644 index 0000000..cf09390 --- /dev/null +++ b/endia/functional/view_ops/as_strided_op.mojo @@ -0,0 +1,269 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# As AsStrided +####--------------------------------------------------------------------------------------------------------------------#### + + +struct AsStrided(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after striding. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to stride, the shape, stride and storage offset of the target ArrayShape encoded in a single ArrayShape. + """ + # like the slice method however we only take the real part of the array + var arg = args[1] + curr.setup(arg.shape(), arg.stride(), arg.storage_offset()) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the as_strided operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the as_strided view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + curr.base_(args[0].base()) + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the as_strided operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for as_strided is computed by calling the inverse operation as_strided_inv. + """ + var out_shape = out.array_shape() + return as_strided_inv( + grad, + primals[0].shape(), + out_shape.shape(), + out_shape.stride(), + out_shape.storage_offset(), + ) + + @staticmethod + fn fwd( + arg0: Array, + shape: List[Int], + stride: List[Int], + storage_offset: Int, + ) raises -> Array: + """ + Creates a view of the input array with the given shape and stride. + + Args: + arg0: The input array. + shape: The shape of the view. + stride: The stride of the view. + storage_offset: The storage offset of the view. + + Returns: + A view of the input array with the given shape and stride. + """ + var arr_shape = setup_array_shape( + List( + arg0.array_shape(), + ArrayShape(shape, stride, storage_offset), + ), + "as_strided_shape", + AsStrided.compute_shape, + ) + + return op_array( + arr_shape, + List(arg0), + NA, + "as_strided", + AsStrided.__call__, + AsStrided.jvp, + AsStrided.vjp, + True, + ) + + +fn as_strided( + arg0: Array, shape: List[Int], stride: List[Int], storage_offset: Int +) raises -> Array: + """ + Creates a view of the input array with the given shape and stride. + + Args: + arg0: The input array. + shape: The shape of the view. + stride: The stride of the view. + storage_offset: The storage offset of the view. + + Returns: + A view of the input array with the given shape and stride. + """ + return AsStrided.fwd(arg0, shape, stride, storage_offset) + + +####--------------------------------------------------------------------------------------------------------------------#### +# As AsStrided Inverse +####--------------------------------------------------------------------------------------------------------------------#### + + +struct AsStridedInv(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after striding, in an inverse manner to the as_strided_shape function. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to stride, the shape, stride and storage offset of the target ArrayShape encoded in a single ArrayShape. + """ + # liek the slice method however we only take the real part of the array + var arg = args[0] + curr.setup(arg.shape(), arg.stride(), arg.storage_offset()) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the as_strided_inv operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the as_strided_inv view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var arg = contiguous(args[0]) + var target_array_shape = curr.array_shape().args()[1] + setup_shape_and_data(curr) + var curr_strided = as_strided( + curr, + shape=target_array_shape.shape(), + stride=target_array_shape.stride(), + storage_offset=target_array_shape.storage_offset(), + ) + for i in range(arg.size()): + curr_strided.store(i, curr_strided.load(i) + arg.load(i)) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the as_strided_inv operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for as_strided_inv is computed by calling the as_strided operation. + """ + var target_array_shape = grad.array_shape().args()[1] + return List( + as_strided( + grad, + shape=target_array_shape.shape(), + stride=target_array_shape.stride(), + storage_offset=target_array_shape.storage_offset(), + ) + ) + + @staticmethod + fn fwd( + arg0: Array, + target_shape: ArrayShape, + shape: List[Int], + stride: List[Int], + storage_offset: Int, + ) raises -> Array: + """ + Creates a view of the input array with the given shape and stride. + + Args: + arg0: The input array. + target_shape: The target shape of the view. + shape: The shape of the view. + stride: The stride of the view. + storage_offset: The storage offset of the view. + + Returns: + A view of the input array with the given shape and stride. + """ + var arr_shape = setup_array_shape( + List(target_shape, ArrayShape(shape, stride, storage_offset)), + "as_strided_inv_shape", + AsStridedInv.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "as_strided_inv", + AsStridedInv.__call__, + AsStridedInv.jvp, + AsStridedInv.vjp, + False, + ) + return curr + + +fn as_strided_inv( + arg0: Array, + target_shape: ArrayShape, + shape: List[Int], + stride: List[Int], + storage_offset: Int, +) raises -> Array: + """ + Creates a view of the input array with the given shape and stride. + + Args: + arg0: The input array. + target_shape: The target shape of the view. + shape: The shape of the view. + stride: The stride of the view. + storage_offset: The storage offset of the view. + + Returns: + A view of the input array with the given shape and stride. + """ + return AsStridedInv.fwd(arg0, target_shape, shape, stride, storage_offset) diff --git a/endia/functional/view_ops/detach_op.mojo b/endia/functional/view_ops/detach_op.mojo new file mode 100644 index 0000000..3f75d23 --- /dev/null +++ b/endia/functional/view_ops/detach_op.mojo @@ -0,0 +1,103 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# Detach +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Detach(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after detaching. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to detach. + """ + # Computes the shape of an array after detaching. + # liek the slice method however we only take the real part of the array + var arg = args[0] + curr.setup(arg.shape(), arg.stride(), arg.storage_offset()) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the detach operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array to detach. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + curr.base_(args[0].base()) + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return default_vjp(primals, grad, out) + + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """ + Detaches the input array from the computation graph. + + Args: + arg0: The input array. + + Returns: + The detached array. + + #### Note: + This function is non-differentiable. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape()), "detach_shape", Detach.compute_shape + ) + + var res = op_array( + arr_shape, + List(arg0), + NA, + "detach", + Detach.__call__, + Detach.jvp, + Detach.vjp, + True, + ) + res.requires_grad_(False) + return res + + +fn detach(arg0: Array) raises -> Array: + """ + Detaches the input array from the computation graph. + + Args: + arg0: The input array. + + Returns: + The detached array. + + #### Note: + This function is non-differentiable. + """ + return Detach.fwd(arg0) diff --git a/endia/functional/view_ops/expand_op.mojo b/endia/functional/view_ops/expand_op.mojo new file mode 100644 index 0000000..e6b4691 --- /dev/null +++ b/endia/functional/view_ops/expand_op.mojo @@ -0,0 +1,240 @@ +from endia import Array +from endia.utils import ( + setup_array_shape, + array_shape_to_list, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp +from endia.functional import reduce_add + +####--------------------------------------------------------------------------------------------------------------------#### +# Expand/Broadcast +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Expand(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape resulting from broadcasting one array to another. + + Args: + curr: The ArrayShape to store the result of the computation. + args: Source ArrayShape, target ArrayShape, and axes to ignore during broadcasting. + + #### Constraints: + - The number of dimensions of the source ArrayShape must be less than or equal to the number of dimensions of the target ArrayShape. + """ + var scr = args[0] + var target = args[1] + var ignore_axes_ = array_shape_to_list(args[2]) if len( + args + ) == 3 else List[Int]() + # adapt axis values + var ignore_axes = List[Int]() + for i in range(len(ignore_axes_)): + if ignore_axes_[i] < 0: + ignore_axes.append(scr.shape_node[].ndim + ignore_axes_[i]) + else: + ignore_axes.append(ignore_axes_[i]) + + var shape = List[Int]() + var stride = List[Int]() + var storage_offset = 0 + var diff = len(target.shape_node[].shape) - len(scr.shape_node[].shape) + + for i in range(diff): + shape.append(target.shape_node[].shape[i]) + stride.append(0) + for i in range(len(scr.shape_node[].shape)): + if list_contains(ignore_axes, i): + shape.append(scr.shape_node[].shape[i]) + stride.append(scr.shape_node[].stride[i]) + continue + if scr.shape_node[].shape[i] == target.shape_node[].shape[i + diff]: + shape.append(scr.shape_node[].shape[i]) + stride.append(scr.shape_node[].stride[i]) + elif scr.shape_node[].shape[i] == 1: + shape.append(target.shape_node[].shape[i + diff]) + stride.append(0) + else: + raise "Error in broadcast_shape_to: Incompatible shapes for broadcasting" + + curr.setup(shape, stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the expand operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the expanded view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the expand operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for expand is computed by reducing the gradient along the axes that were expanded. + """ + var stride = out.stride() + var axis = List[Int]() + for i in range(grad.ndim()): + if stride[i] == 0: + axis.append(i) + return List(reduce_add(grad, axis)) + + @staticmethod + fn fwd( + arg0: Array, + array_shape: ArrayShape, + ignore_axes: List[Int] = List[Int](), + ) raises -> Array: + """ + Expands the input array to the given shape. + + Args: + arg0: The input array. + array_shape: The target shape. + ignore_axes: The axes to ignore during expansion. + + Returns: + The expanded array. + + #### Constraints: + - The number of dimensions of the source ArrayShape must be less than or equal to the number of dimensions of the target ArrayShape. + - The number of axis to ignore must be less than or equal to the number of dimensions of the source ArrayShape. + + #### Note: + When performing an expand operation in eager mode, the function checks if the shape of the input array is equal to the target shape. If they are equal, the function returns the input array as is. This is done to avoid unnecessary computation. + """ + # The folliwng code checks if arg0 shape and target_shape are equal, if so and also the arg0 does not have an associated fxgraph, return arg0 + # note: when fxgraph is used, we want to cache the graph but still want to be reactive on the shape changes + # if not arg0.has_fxgraph(): + var adapted_ignore_axis = List[Int]() + for i in range(len(ignore_axes)): + if ignore_axes[i] < 0: + adapted_ignore_axis.append(arg0.ndim() + ignore_axes[i]) + else: + adapted_ignore_axis.append(ignore_axes[i]) + if arg0.ndim() == array_shape.ndim(): + var equal = True + var arg0_shape = arg0.shape() + var target_shape = array_shape.shape() + for i in range(arg0.ndim()): + if list_contains(adapted_ignore_axis, i): + continue + if arg0_shape[i] != target_shape[i]: + equal = False + break + if equal: + return arg0 + + var arr_shape = setup_array_shape( + List( + arg0.array_shape(), + array_shape, + list_to_array_shape(ignore_axes), + ), + "brdcst_shape", + Expand.compute_shape, + ) if len(ignore_axes) > 0 else setup_array_shape( + List(arg0.array_shape(), array_shape), + "brdcst_shape", + Expand.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "brdcst", + Expand.__call__, + Expand.jvp, + Expand.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + +fn expand( + arg0: Array, shape: ArrayShape, ignore_axes: List[Int] = List[Int]() +) raises -> Array: + """ + Expands the input array to the given shape. + + Args: + arg0: The input array. + shape: The target shape. + ignore_axes: The axes to ignore during expansion. + + Returns: + The expanded array. + + #### Note: + This function is a wrapper around the expand function with the target shape being the shape of the target array. + """ + return Expand.fwd(arg0, shape, ignore_axes) + + +fn expand_as(arg0: Array, arg1: Array) raises -> Array: + """ + Expands the input array to the shape of the target array. + + Args: + arg0: The input array. + arg1: The target array. + + Returns: + A view on the input array with the shape of the target array. + + #### Note: + This function is a wrapper around the expand function with the target shape being the shape of the target array. + """ + return expand(arg0, arg1.array_shape()) + + +fn broadcast_to(arg0: Array, shape: List[Int]) raises -> Array: + """ + Broadcasts the input array to the given shape. + + Args: + arg0: The input array. + shape: The target shape. + + Returns: + A view on the input array with the target shape. + + #### Note: + This function is a wrapper around the expand function with the target shape being the shape of the target array. + """ + return expand(arg0, ArrayShape(shape)) diff --git a/endia/functional/view_ops/imag_op.mojo b/endia/functional/view_ops/imag_op.mojo new file mode 100644 index 0000000..999c964 --- /dev/null +++ b/endia/functional/view_ops/imag_op.mojo @@ -0,0 +1,123 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# Imaginary +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Imag(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of the imaginary part of a complex array. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to compute the imaginary part of. + """ + # liek the slice method however we only take the real part of the array + var arg = args[0] + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var storage_offset = arg.shape_node[].storage_offset + stride[ + len(stride) - 1 + ] + var new_shape = List[Int]() + var new_stride = List[Int]() + for i in range(len(shape)): + new_shape.append(shape[i]) + new_stride.append(stride[i] * 2) + curr.setup(new_shape, new_stride, storage_offset) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return default_vjp(primals, grad, out) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the imag operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the imag view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """ + Creates a view of the input array as an imaginary array. + + Args: + arg0: The input array. + + Returns: + A view of the input array as an imaginary array. + + #### Note: + This function is non-differentiable. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape()), + "imag_shape", + Imag.compute_shape, + ) + + var res = op_array( + arr_shape, + List(arg0), + NA, + "imag", + Imag.__call__, + Imag.jvp, + Imag.vjp, + True, + ) + res.is_complex_(False) + res.base_(arg0.base()) + return res + + +fn imag(arg0: Array) raises -> Array: + """ + Computes the imaginary part of the input array. + + Args: + arg0: The input array. + + Returns: + An array containing the imaginary part of the input array. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = imag(a) + print(result) + ``` + + #### Note: + This function supports: + - Complex input arrays. + - Non-differentiable operation. + """ + return Imag.fwd(arg0) diff --git a/endia/functional/view_ops/pad_op.mojo b/endia/functional/view_ops/pad_op.mojo new file mode 100644 index 0000000..0eb63eb --- /dev/null +++ b/endia/functional/view_ops/pad_op.mojo @@ -0,0 +1,163 @@ +from endia import Array +from endia.utils import ( + array_shape_to_slices, + slices_to_array_shape, + setup_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +import math +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) + +from endia.functional import array_slice + + +####-----------------------------------------------------------------------------------------------------------------#### +#### Padding +####-----------------------------------------------------------------------------------------------------------------#### + + +struct Pad: + @staticmethod + fn fwd( + arg0: Array, target_shape: ArrayShape, slices_in_target: List[Slice] + ) raises -> Array: + """Pads an array to a target shape. + + Pads the input array to the target shape by copying the input array to the target shape. + The target shape must be larger than the input array shape. + The slices in the target shape specify the region where the input array is copied. + + Args: + arg0: The input array to be padded. + target_shape: The target shape to pad the input array to. + slices_in_target: A list of slices specifying the region in the target shape where the input array is copied. + + Returns: + An array containing the input array padded to the target shape. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + target_shape = ArrayShape([2, 3]) + slices_in_target = [Slice(0, 2), Slice(0, 2)] + result = pad(a, target_shape, slices_in_target) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (reverse mode only). + - Complex valued arguments. + """ + var arr_shape = setup_array_shape( + List( + arg0.array_shape(), + target_shape, + slices_to_array_shape(slices_in_target), + ), + "pad_shape", + Pad.padded_shape, + ) + + return op_array( + arr_shape, List(arg0), NA, "pad", Pad.__call__, default_jvp, Pad.vjp + ) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """Computes the vector-Jacobian product for the padding operation. + + Implements reverse-mode automatic differentiation for the padding operation. + + Args: + primals: A list containing the primal input array and the target shape. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for padding is computed as the gradient of the output array sliced to the target shape. + """ + var slices = array_shape_to_slices(out.array_shape().args()[2]) + return List(array_slice(grad, slices)) + + @staticmethod + fn padded_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after padding. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to pad, the target ArrayShape. + """ + var target_shape = args[1] + curr.setup(target_shape.shape()) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """Performs the forward pass for padding an array to a target shape. + + Pads the input array to the target shape and stores the result in the current array. + Initializes the current array if not already set up. + + Args: + curr: The current array to store the result (modified in-place). + args: A list containing the input array and the target shape. + + #### Note: + This function assumes that the shape and data of the args are already set up. + If the current array (curr) is not initialized, it computes the shape based on the target shape and sets up the data accordingly. + """ + setup_shape_and_data(curr) + var arg = args[0] + var array_shape = curr.array_shape() + var target_shape = array_shape.args()[1] + curr.setup_array_shape(target_shape) + var slices_in_target = array_shape_to_slices(array_shape.args()[2]) + var sliced_curr = array_slice(curr, slices_in_target) + + for i in range(len(target_shape.shape())): + if arg.shape()[i] != sliced_curr.array_shape().shape()[i]: + raise "Error in pad: target_shape and sliced_curr shape do not match" + + for i in range(arg.size()): + sliced_curr.store(i, arg.load(i)) + + +fn pad( + arg0: Array, target_shape: ArrayShape, slices_in_target: List[Slice] +) raises -> Array: + """Pads an array to a target shape. + + Pads the input array to the target shape by copying the input array to the target shape. + The target shape must be larger than the input array shape. + The slices in the target shape specify the region where the input array is copied. + + Args: + arg0: The input array to be padded. + target_shape: The target shape to pad the input array to. + slices_in_target: A list of slices specifying the region in the target shape where the input array is copied. + + Returns: + An array containing the input array padded to the target shape. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + target_shape = ArrayShape([2, 3]) + slices_in_target = [Slice(0, 2), Slice(0, 2)] + result = pad(a, target_shape, slices_in_target) + print(result) + ``` + + #### Note: + This function supports: + - Automatic differentiation (reverse mode only). + - Complex valued arguments. + """ + return Pad.fwd(arg0, target_shape, slices_in_target) diff --git a/endia/functional/view_ops/permute_op.mojo b/endia/functional/view_ops/permute_op.mojo new file mode 100644 index 0000000..38b42f6 --- /dev/null +++ b/endia/functional/view_ops/permute_op.mojo @@ -0,0 +1,369 @@ +from endia import Array +from endia.utils import ( + setup_array_shape, + array_shape_to_list, + list_to_array_shape, +) +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# Permute/Transpose/Swapaxes/Swapdims +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Permute(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Permutes the dimensions of an array shape given a list of axes. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to permute, and the list of axes to permute. + + #### Constraints: + - The number of axes in the list must not exceed the number of dimensions of the ArrayShape. + """ + var arg = args[0] + var axis = array_shape_to_list(args[1]) + var perm_axis = List[Int]() + var ndim = arg.shape_node[].ndim + if len(axis) > ndim: + raise "Error: Number of axes in the list exceeds the number of dimensions of the ArrayShape" + for i in range(ndim): + perm_axis.append(i) + for i in range(len(axis)): + var a = axis[i] + if a < 0: + a = ndim + a + perm_axis[(ndim - len(axis)) + i] = a + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var storage_offset = arg.shape_node[].storage_offset + var new_shape = List[Int]() + var new_stride = List[Int]() + + for i in range(len(perm_axis)): + new_shape.append(shape[perm_axis[i]]) + new_stride.append(stride[perm_axis[i]]) + + curr.setup(new_shape, new_stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Permutes the input array based on the given axis and stores the result in the current array (curr). The first agument is set as the base of the current array. + + Args: + curr: The current array, must be mutable. + args: The input array and the axis to permute. + + Constraints: + The axis must be a valid permutation of the input array's dimensions. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array permutation. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for permutation. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + permute_jvp: Forward-mode autodiff for permutation. + """ + var axis = out.array_shape().args()[1] + return List(permute_inv(grad, axis)) + + @staticmethod + fn fwd(arg0: Array, axis: ArrayShape) raises -> Array: + """ + Creates a view of the input array with its dimensions permuted based on the given axis. + + Args: + arg0: The input array. + axis: The axis to permute. + + Returns: + A view of the input array with its dimensions permuted. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), axis), + "permute", + Permute.compute_shape, + ) + var curr = op_array( + arr_shape, + List(arg0), + NA, + "permute", + Permute.__call__, + Permute.jvp, + Permute.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + +fn permute(arg0: Array, axis: ArrayShape) raises -> Array: + """ + Creates a view of the input array with its dimensions permuted based on the given axis. + + Args: + arg0: The input array. + axis: The axis to permute. + + Returns: + A view of the input array with its dimensions permuted. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = permute(a, axis=List(-1,-2)) + print(result) + ``` + + #### This function supports + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return Permute.fwd(arg0, axis) + + +fn transpose(arg0: Array, axis1: Int, axis2: Int) raises -> Array: + """ + Transposes the input array based on the given axes. + + Args: + arg0: The input array. + axis1: The first axis to transpose. + axis2: The second axis to transpose. + + Returns: + The transposed array. + + #### Note: + This function is a wrapper around the permute function with the given axes. + """ + var ndim = arg0.ndim() + var axis = List[Int]() + for i in range(ndim): + if i == axis1: + axis.append(axis2) + elif i == axis2: + axis.append(axis1) + else: + axis.append(i) + return permute(arg0, axis) + + +fn swapaxes(arg0: Array, axis1: Int, axis2: Int) raises -> Array: + """ + Swaps the input array's axes based on the given axes. + + Args: + arg0: The input array. + axis1: The first axis to swap. + axis2: The second axis to swap. + + Returns: + The array with the axes swapped. + + #### Note: + This function is a wrapper around the transpose function with the given axes. + """ + return transpose(arg0, axis1, axis2) + + +fn swapdims(arg0: Array, axis1: Int, axis2: Int) raises -> Array: + """ + Swaps the input array's dimensions based on the given axes. + + Args: + arg0: The input array. + axis1: The first axis to swap. + axis2: The second axis to swap. + + Returns: + The array with the dimensions swapped. + + #### Note: + This function is a wrapper around the transpose function with the given axes. + """ + return swapaxes(arg0, axis1, axis2) + + +####--------------------------------------------------------------------------------------------------------------------#### +# Inverse Permute +####--------------------------------------------------------------------------------------------------------------------#### + + +struct InvPermute(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Permutes the dimensions of an array shape given a list of axes, in an inverse manner to the permute_shape function. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to permute, and the list of axes to permute. + + #### Constraints: + - The number of axes in the list must not exceed the number of dimensions of the ArrayShape. + """ + var arg = args[0] + var axis = array_shape_to_list(args[1]) + var perm_axis = List[Int]() + var ndim = arg.shape_node[].ndim + if len(axis) > ndim: + raise "Error: Number of axes in the list exceeds the number of dimensions of the ArrayShape" + for i in range(ndim): + perm_axis.append(i) + for i in range(len(axis)): + var a = axis[i] + if a < 0: + a = ndim + a + perm_axis[a] = (ndim - len(axis)) + i + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var storage_offset = arg.shape_node[].storage_offset + var new_shape = List[Int]() + var new_stride = List[Int]() + + for i in range(len(perm_axis)): + new_shape.append(shape[perm_axis[i]]) + new_stride.append(stride[perm_axis[i]]) + + curr.setup(new_shape, new_stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Permutes the input array based on the given axis and stores the result in the current array (curr). The first agument is set as the base of the current array. + + Args: + curr: The current array, must be mutable. + args: The input array and the axis to permute. + + Constraints: + The axis must be a valid permutation of the input array's dimensions. + """ + curr.base_(args[0].base()) + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Compute vector-Jacobian product for array permutation. + + Args: + primals: Primal input arrays. + grad: Gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + List[Array]: Gradients with respect to each input. + + #### Note: + Implements reverse-mode automatic differentiation for permutation. + Returns arrays with shape zero for inputs that do not require gradients. + + #### See Also: + permute_inv_jvp: Forward-mode autodiff for permutation. + """ + var axis = out.array_shape().args()[1] + return List(permute(grad, axis)) + + @staticmethod + fn fwd(arg0: Array, axis: ArrayShape) raises -> Array: + """ + Creates a view of the input array with its dimensions permuted based on the given axis. + + Args: + arg0: The input array. + axis: The axis to permute. + + Returns: + A view of the input array with its dimensions permuted. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = permute_inv(a, axis=List(-1,-2)) + print(result) + ``` + + #### This function supports + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), axis), + "permute_inv", + InvPermute.compute_shape, + ) + return op_array( + arr_shape, + List(arg0), + NA, + "permute_inv", + InvPermute.__call__, + InvPermute.jvp, + InvPermute.vjp, + True, + ) + + +fn permute_inv(arg0: Array, axis: ArrayShape) raises -> Array: + """ + Creates a view of the input array with its dimensions permuted based on the given axis. + + Args: + arg0: The input array. + axis: The axis to permute. + + Returns: + A view of the input array with its dimensions permuted. + + #### Examples: + ```python + a = Array([[1, 2], [3, 4]]) + result = permute_inv(a, axis=List(-1,-2)) + print(result) + ``` + + #### This function supports + - Automatic differentiation (forward and reverse modes). + - Complex valued arguments. + """ + return InvPermute.fwd(arg0, axis) diff --git a/endia/functional/view_ops/real_op.mojo b/endia/functional/view_ops/real_op.mojo new file mode 100644 index 0000000..dffe6ab --- /dev/null +++ b/endia/functional/view_ops/real_op.mojo @@ -0,0 +1,114 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# Real +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Real(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of the real part of a complex array. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to compute the real part of. + """ + # liek the slice method however we only take the real part of the array + var arg = args[0] + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var storage_offset = arg.shape_node[].storage_offset + var new_shape = List[Int]() + var new_stride = List[Int]() + for i in range(len(shape)): + new_shape.append(shape[i]) + new_stride.append(stride[i] * 2) + curr.setup(new_shape, new_stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the real operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the real view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + if primals[0].is_complex(): + return complex(grad, Array(grad.shape())) + return grad + + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """ + Creates a view of the input array as a real array. + + Args: + arg0: The input array. + + Returns: + A view of the input array as a real array. + + #### Note: + This function is non-differentiable. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape()), + "real_shape", + # real_shape, + Real.compute_shape, + ) + + var res = op_array( + arr_shape, + List(arg0), + NA, + "real", + Real.__call__, + Real.jvp, + Real.vjp, + True, + ) + res.is_complex_(False) + res.base_(arg0.base()) + return res + + +fn real(arg0: Array) raises -> Array: + """ + Computes the real part of the input array element-wise. + + Args: + arg0: The input array. + + Returns: + The real part of the input array. + """ + if not arg0.is_complex(): + return arg0 + return Real.fwd(arg0) diff --git a/endia/functional/view_ops/reamde.md b/endia/functional/view_ops/reamde.md new file mode 100644 index 0000000..40f36e3 --- /dev/null +++ b/endia/functional/view_ops/reamde.md @@ -0,0 +1 @@ +# View Operations \ No newline at end of file diff --git a/endia/functional/view_ops/squeeze_op.mojo b/endia/functional/view_ops/squeeze_op.mojo new file mode 100644 index 0000000..c515a76 --- /dev/null +++ b/endia/functional/view_ops/squeeze_op.mojo @@ -0,0 +1,135 @@ +from endia import Array +from endia.utils import setup_array_shape, array_shape_to_list +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp +from endia.functional import unsqueeze + +####--------------------------------------------------------------------------------------------------------------------#### +# Squeeze +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Squeeze(DifferentiableViewOp): + @staticmethod + fn squeezable_axis(inout curr: ArrayShape, args: List[ArrayShape]) raises: + var arg = args[0] + var shape = arg.shape_node[].shape + var new_shape = List[Int]() + for i in range(len(shape)): + if shape[i] == 1: + new_shape.append(i) + if len(shape) == len(new_shape): + _ = new_shape.pop() + curr.setup(new_shape) + + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after squeezing. This removes all dimensions of size 1. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to squeeze. + """ + var arg = args[0] + var _axis = ArrayShape(0) + Squeeze.squeezable_axis(_axis, List(arg)) + var axis = array_shape_to_list(_axis) + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var new_shape = List[Int]() + var new_stride = List[Int]() + for i in range(len(shape)): + if not list_contains(axis, i): + new_shape.append(shape[i]) + new_stride.append(stride[i]) + curr.setup(new_shape, new_stride, arg.storage_offset()) + curr.args_(List(arg, _axis)) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the squeeze operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the squeeze view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the squeeze operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for squeeze is computed by unsqueezing the gradient along the axes that were squeezed. + """ + var squeezable_axis = out.array_shape().args()[1] + return unsqueeze(grad, squeezable_axis) + + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """ + Squeezes the input array by removing axes of length 1. + + Args: + arg0: The input array. + + Returns: + The squeezed array. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape()), + "squeeze", + Squeeze.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "squeeze", + Squeeze.__call__, + Squeeze.jvp, + Squeeze.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + +fn squeeze(arg0: Array) raises -> Array: + """ + Squeezes the input array by removing axes of length 1. + + Args: + arg0: The input array. + + Returns: + The squeezed array. + """ + return Squeeze.fwd(arg0) diff --git a/endia/functional/view_ops/unsqueeze_op.mojo b/endia/functional/view_ops/unsqueeze_op.mojo new file mode 100644 index 0000000..3b7d99c --- /dev/null +++ b/endia/functional/view_ops/unsqueeze_op.mojo @@ -0,0 +1,143 @@ +from endia import Array +from endia.utils import setup_array_shape, array_shape_to_list +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp +from endia.functional import squeeze + +####--------------------------------------------------------------------------------------------------------------------#### +# Unsqueeze +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Unsqueeze(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after unsqueezing. This adds dimensions of size 1 along the specified axes. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to unsqueeze, and the axes to unsqueeze along encoded in an ArrayShape. + """ + var arg = args[0] + var axis = array_shape_to_list(args[1]) + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var new_stride = List[Int]() + var new_shape = List[Int]() + + if len(axis) == 0: + for i in range(len(shape)): + new_shape.append(shape[i]) + new_stride.append(stride[i]) + else: + for _ in range(axis[len(axis) - 1] + 1): + new_shape.append(-1) + new_stride.append(-1) + for x in axis: + new_shape[x[]] = 1 + new_stride[x[]] = -1 + var shape_idx = 0 + for i in range(len(new_shape)): + if new_shape[i] == -1: + new_shape[i] = shape[shape_idx] + new_stride[i] = stride[shape_idx] + shape_idx += 1 + for i in range(shape_idx, len(shape)): + new_shape.append(shape[i]) + new_stride.append(stride[i]) + + for i in range(len(new_stride) - 2, -1, -1): + if new_stride[i] == -1: + new_stride[i] = new_stride[i + 1] + + curr.setup(new_shape, new_stride, arg.storage_offset()) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the unsqueeze operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the unsqueeze view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the unsqueeze operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass (unused in this function). + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for unsqueeze is computed by squeezing the gradient. + """ + return List(squeeze(grad)) + + @staticmethod + fn fwd(arg0: Array, axis: ArrayShape) raises -> Array: + """ + Unsqueezes the input array by adding axes of length 1. + + Args: + arg0: The input array. + axis: The axis to unsqueeze. + + Returns: + The unsqueezed array. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), axis), + "unsqueeze", + Unsqueeze.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "unsqueeze", + Unsqueeze.__call__, + Unsqueeze.jvp, + Unsqueeze.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + +fn unsqueeze(arg0: Array, axis: ArrayShape) raises -> Array: + """ + Unsqueezes the input array by adding axes of length 1. + + Args: + arg0: The input array. + axis: The axis to unsqueeze. + + Returns: + The unsqueezed array. + """ + return Unsqueeze.fwd(arg0, axis) diff --git a/endia/functional/view_ops/view_as_imag_op.mojo b/endia/functional/view_ops/view_as_imag_op.mojo new file mode 100644 index 0000000..2d7c5b2 --- /dev/null +++ b/endia/functional/view_ops/view_as_imag_op.mojo @@ -0,0 +1,115 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# View as Imaginary +####--------------------------------------------------------------------------------------------------------------------#### + + +struct ViewAsImag(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after viewing it as the imaginary part of a complex array. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to view as the imaginary part. + """ + # this simpyl creates a slice shape which merely has a ge_zero size of 2 in the last dimension + var arg = args[0] + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var storage_offset = arg.shape_node[].storage_offset + stride[ + len(stride) - 1 + ] + var new_shape = List[Int]() + var new_stride = List[Int]() + for i in range(len(shape) - 1): + new_shape.append(shape[i]) + new_stride.append(stride[i]) + new_shape.append(shape[len(shape) - 1] // 2) + new_stride.append(stride[len(stride) - 1] * 2) + curr.setup(new_shape, new_stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the view_as_imag operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the view_as_imag view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """ + Creates a view of the input array as an imaginary array. + + Args: + arg0: The input array. + + Returns: + A view of the input array as an imaginary array. + + #### Note: + This function is non-differentiable. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape()), + "view_as_imag_shape", + ViewAsImag.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "view_as_imag", + ViewAsImag.__call__, + ViewAsImag.jvp, + ViewAsImag.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return default_vjp(primals, grad, out) + + +fn view_as_imag(arg0: Array) raises -> Array: + """ + Creates a view of the input array as an imaginary array. + + Args: + arg0: The input array. + + Returns: + A view of the input array as an imaginary array. + + #### Note: + This function is non-differentiable. + """ + return ViewAsImag.fwd(arg0) diff --git a/endia/functional/view_ops/view_as_real_op.mojo b/endia/functional/view_ops/view_as_real_op.mojo new file mode 100644 index 0000000..9a73e86 --- /dev/null +++ b/endia/functional/view_ops/view_as_real_op.mojo @@ -0,0 +1,108 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# View as Real +####--------------------------------------------------------------------------------------------------------------------#### + + +struct ViewAsReal(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after viewing it as the real part of a complex array. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to view as the real part. + """ + # this simpyl creates a slice shape which merely has a ge_zero size of 2 in the last dimension + var arg = args[0] + var shape = arg.shape_node[].shape + var stride = arg.shape_node[].stride + var storage_offset = arg.shape_node[].storage_offset + var new_shape = List[Int]() + var new_stride = List[Int]() + for i in range(len(shape) - 1): + new_shape.append(shape[i]) + new_stride.append(stride[i]) + new_shape.append(shape[len(shape) - 1] // 2) + new_stride.append(stride[len(stride) - 1] * 2) + curr.setup(new_shape, new_stride, storage_offset) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the view_as_real operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the view_as_real view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + """ + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + return default_vjp(primals, grad, out) + + @staticmethod + fn fwd(arg0: Array) raises -> Array: + """ + Creates a view of the input array as a real array. + + Args: + arg0: The input array. + + Returns: + A view of the input array as a real array. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape()), + "view_as_real_shape", + # view_as_real_shape, + ViewAsReal.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "view_as_real", + ViewAsReal.__call__, + ViewAsReal.jvp, + ViewAsReal.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + +fn view_as_real(arg0: Array) raises -> Array: + """ + Creates a view of the input array as the real part of a complex array. + + Args: + arg0: The input array. + + Returns: + A view of the input array as the real part of a complex array. + """ + return ViewAsReal.fwd(arg0) diff --git a/endia/functional/view_ops/view_op.mojo b/endia/functional/view_ops/view_op.mojo new file mode 100644 index 0000000..c5b1da3 --- /dev/null +++ b/endia/functional/view_ops/view_op.mojo @@ -0,0 +1,166 @@ +from endia import Array +from endia.utils import setup_array_shape +from endia.utils.aliases import dtype, nelts, NA +from algorithm import vectorize, parallelize +import math +from endia.functional._utils import contiguous + +from endia.functional._utils import ( + op_array, + setup_shape_and_data, +) +from ._utils import DifferentiableViewOp + +####--------------------------------------------------------------------------------------------------------------------#### +# Reshape +####--------------------------------------------------------------------------------------------------------------------#### + + +struct Reshape(DifferentiableViewOp): + @staticmethod + fn compute_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape of an array after reshaping. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to reshape, and the shape, stride and storage offset of the target ArrayShape encoded in a single ArrayShape. + """ + # liek the slice method however we only take the real part of the array + var arg = args[1] + if arg.ndim() == 1 and arg.shape()[0] == -1: + curr.setup(args[0].size()) + else: + curr.setup(arg.shape(), arg.stride(), arg.storage_offset()) + + @staticmethod + fn __call__(inout curr: Array, args: List[Array]) raises: + """ + Performs the forward pass for the reshape operation. It sets the base of the argument to be the base of the current array and computes the shape of the current array via its dedicated ArraySahpe fwd fucntion. + + Args: + curr: The current array to store the result (modified in-place). + args: The array on which the reshape view is created. + + #### Note: + The information of the shape computation is stored in the ArrayShape object of the curr array. + + #### Constraints: + - The number of elements in the input array must be equal to the number of elements in the target shape. + """ + # var contiguous_arg = contiguous(args[0]) + # curr.base_(contiguous_arg.base()) + var array_shape = curr.array_shape() + compute_shape(array_shape, curr.requires_grad() or curr.has_fxgraph()) + if curr.size() != args[0].size(): + raise "The number of elements in the input array must be equal to the number of elements in the target shape." + + @staticmethod + fn jvp(primals: List[Array], tangents: List[Array]) raises -> Array: + return default_jvp(primals, tangents) + + @staticmethod + fn vjp(primals: List[Array], grad: Array, out: Array) raises -> List[Array]: + """ + Computes the vector-Jacobian product for the reshape operation. + + Args: + primals: A list containing the primal input array. + grad: The gradient of the output with respect to some scalar function. + out: The output of the forward pass. + + Returns: + A list containing the gradient with respect to the input. + + #### Note: + The vector-Jacobian product for reshape is computed by calling the reshape operation. + """ + var primal_shape = primals[0].shape() + return reshape(grad, primal_shape) + + @staticmethod + fn fwd(arg0: Array, shape: List[Int]) raises -> Array: + """ + Creates a view of the input array with the given shape. + + Args: + arg0: The input array. + shape: The target shape. + + Returns: + The reshaped array. + + #### Constraints: + - The number of elements in the input array must be equal to the number of elements in the target shape. + """ + var arr_shape = setup_array_shape( + List(arg0.array_shape(), ArrayShape(shape)), + "reshape_shape", + Reshape.compute_shape, + ) + + var curr = op_array( + arr_shape, + List(arg0), + NA, + "reshape", + Reshape.__call__, + Reshape.jvp, + Reshape.vjp, + True, + ) + curr.base_(arg0.base()) + return curr + + +fn reshape(arg0: Array, shape: List[Int]) raises -> Array: + """ + Creates a view of the input array with the given shape. + + Args: + arg0: The input array. + shape: The target shape. + + Returns: + The reshaped array. + + #### Constraints: + - The number of elements in the input array must be equal to the number of elements in the target shape. + """ + return Reshape.fwd(arg0, shape) + + +fn view(arg0: Array, shape: List[Int]) raises -> Array: + """ + Creates a view of the input array with the given shape. + + Args: + arg0: The input array. + shape: The target shape. + + Returns: + The reshaped array. + + #### Constraints: + - The number of elements in the input array must be equal to the number of elements in the target shape. + + #### Note: + This function is a wrapper around the reshape function. + """ + return reshape(arg0, shape) + + +fn flatten(arg0: Array) raises -> Array: + """ + Flattens the input array. + + Args: + arg0: The input array. + + Returns: + The flattened array. + + #### Note: + This function is a wrapper around the reshape function. + """ + return reshape(arg0, List(-1)) diff --git a/endia/linalg/__init__.mojo b/endia/linalg/__init__.mojo new file mode 100644 index 0000000..e69de29 diff --git a/endia/linalg/reamde.md b/endia/linalg/reamde.md new file mode 100644 index 0000000..16c0faf --- /dev/null +++ b/endia/linalg/reamde.md @@ -0,0 +1 @@ +# Linear Algebra \ No newline at end of file diff --git a/endia/nn/__init__.mojo b/endia/nn/__init__.mojo new file mode 100644 index 0000000..9dd3873 --- /dev/null +++ b/endia/nn/__init__.mojo @@ -0,0 +1,2 @@ +from .models import * +from .modules import * diff --git a/endia/nn/models/__init__.mojo b/endia/nn/models/__init__.mojo new file mode 100644 index 0000000..e69de29 diff --git a/endia/nn/modules/__init__.mojo b/endia/nn/modules/__init__.mojo new file mode 100644 index 0000000..667b67b --- /dev/null +++ b/endia/nn/modules/__init__.mojo @@ -0,0 +1 @@ +from ._mlp import * diff --git a/endia/nn/modules/_mlp.mojo b/endia/nn/modules/_mlp.mojo new file mode 100644 index 0000000..3d82287 --- /dev/null +++ b/endia/nn/modules/_mlp.mojo @@ -0,0 +1,69 @@ +import endia as nd + + +struct MLP(StringableRaising): + var weights: List[nd.Array] + var biases: List[nd.Array] + var hidden_dims: List[Int] + var num_layers: Int + var compute_backward: Bool + + fn __init__( + inout self, hidden_dims: List[Int], compute_backward: Bool = False + ) raises: + self.weights = List[nd.Array]() + self.biases = List[nd.Array]() + self.hidden_dims = hidden_dims + self.num_layers = len(hidden_dims) - 1 + self.compute_backward = compute_backward + + for i in range(self.num_layers): + var weight = nd.rand_he_normal( + List(hidden_dims[i], hidden_dims[i + 1]), + fan_in=hidden_dims[i], + requires_grad=compute_backward, + ) + var bias = nd.rand_he_normal( + List(hidden_dims[i + 1]), + fan_in=hidden_dims[i], + requires_grad=compute_backward, + ) + self.weights.append(weight) + self.biases.append(bias) + + fn forward(self, x: nd.Array) raises -> nd.Array: + var pred = x + for i in range(self.num_layers): + pred = pred @ self.weights[i] + self.biases[i] + if i < self.num_layers - 1: + pred = nd.relu(pred) + return pred + + fn params(self) raises -> List[nd.Array]: + var params = List[nd.Array]() + for i in range(self.num_layers): + params.append(self.weights[i]) + params.append(self.biases[i]) + return params + + fn __str__(self) raises -> String: + var out = String("") + for i in range(self.num_layers): + out += "Layer " + String(i) + "\n" + out += self.weights[i].__str__() + "\n" + out += self.biases[i].__str__() + "\n" + return out + + +fn mlp(args: List[nd.Array]) raises -> nd.Array: + var pred = args[0] + var num_layers = (len(args) - 2) // 2 + for i in range(num_layers): + var weight = args[i * 2 + 2] + var bias = args[i * 2 + 3] + pred = pred @ weight + bias + if i < num_layers - 1: + pred = nd.relu(pred) + # print("\n\nLayer ", i,":") + # print(str(pred)) + return pred diff --git a/endia/nn/reamde.md b/endia/nn/reamde.md new file mode 100644 index 0000000..3ddc356 --- /dev/null +++ b/endia/nn/reamde.md @@ -0,0 +1 @@ +# Neural Network Modules and Models \ No newline at end of file diff --git a/endia/optim/__init__.mojo b/endia/optim/__init__.mojo new file mode 100644 index 0000000..ce57e40 --- /dev/null +++ b/endia/optim/__init__.mojo @@ -0,0 +1,4 @@ +from .sgd import * +from .adam import * +from .adagrad import * +from .rmsprop import * diff --git a/endia/optim/adagrad.mojo b/endia/optim/adagrad.mojo new file mode 100644 index 0000000..a290004 --- /dev/null +++ b/endia/optim/adagrad.mojo @@ -0,0 +1,32 @@ +import endia as nd + + +struct Adagrad: + var params: List[nd.Array] + var lr: SIMD[dtype, 1] + var eps: SIMD[dtype, 1] + var cache: List[nd.Array] + + fn __init__( + inout self, + params: List[nd.Array], + lr: SIMD[dtype, 1] = 0.01, + eps: SIMD[dtype, 1] = 1e-8, + ) raises: + self.params = params + self.lr = lr + self.eps = eps + self.cache = List[nd.Array]() + for i in range(len(params)): + self.cache.append(nd.Array(params[i].shape())) + + fn step(inout self) raises: + for i in range(len(self.params)): + self.cache[i] += self.params[i].grad() * self.params[i].grad() + self.cache[i].clear_args() + self.params[i] -= ( + self.lr + * self.params[i].grad() + / (nd.sqrt(self.cache[i]) + self.eps) + ) + self.params[i].clear_args() diff --git a/endia/optim/adam.mojo b/endia/optim/adam.mojo new file mode 100644 index 0000000..c714edd --- /dev/null +++ b/endia/optim/adam.mojo @@ -0,0 +1,52 @@ +import endia as nd + + +struct Adam: + var params: List[nd.Array] + var lr: SIMD[dtype, 1] + var beta1: SIMD[dtype, 1] + var beta2: SIMD[dtype, 1] + var eps: SIMD[dtype, 1] + var t: SIMD[dtype, 1] + var m: List[nd.Array] + var v: List[nd.Array] + + fn __init__( + inout self, + params: List[nd.Array], + lr: SIMD[dtype, 1] = 0.001, + beta1: SIMD[dtype, 1] = 0.9, + beta2: SIMD[dtype, 1] = 0.999, + eps: SIMD[dtype, 1] = 1e-8, + ) raises: + self.params = params + self.lr = lr + self.beta1 = beta1 + self.beta2 = beta2 + self.eps = eps + self.t = SIMD[dtype, 1](1) + self.m = List[nd.Array]() + self.v = List[nd.Array]() + for i in range(len(params)): + self.m.append(nd.Array(params[i].shape())) + self.v.append(nd.Array(params[i].shape())) + + fn step(inout self) raises: + for i in range(len(self.params)): + self.m[i] = ( + self.beta1 * self.m[i] + + (1 - self.beta1) * self.params[i].grad() + ) + self.m[i].clear_args() + self.v[i] = ( + self.beta2 * self.v[i] + + (1 - self.beta2) + * self.params[i].grad() + * self.params[i].grad() + ) + self.v[i].clear_args() + var m_hat = self.m[i] / (1 - self.beta1**self.t) + var v_hat = self.v[i] / (1 - self.beta2**self.t) + self.params[i] -= self.lr * m_hat / (nd.sqrt(v_hat) + self.eps) + self.params[i].clear_args() + self.t += 1 diff --git a/endia/optim/reamde.md b/endia/optim/reamde.md new file mode 100644 index 0000000..ad1db55 --- /dev/null +++ b/endia/optim/reamde.md @@ -0,0 +1 @@ +# Optimizers \ No newline at end of file diff --git a/endia/optim/rmsprop.mojo b/endia/optim/rmsprop.mojo new file mode 100644 index 0000000..1b9074a --- /dev/null +++ b/endia/optim/rmsprop.mojo @@ -0,0 +1,40 @@ +import endia as nd + + +struct RMSprop: + var params: List[nd.Array] + var lr: SIMD[dtype, 1] + var alpha: SIMD[dtype, 1] + var eps: SIMD[dtype, 1] + var cache: List[nd.Array] + + fn __init__( + inout self, + params: List[nd.Array], + lr: SIMD[dtype, 1] = 0.01, + alpha: SIMD[dtype, 1] = 0.99, + eps: SIMD[dtype, 1] = 1e-8, + ) raises: + self.params = params + self.lr = lr + self.alpha = alpha + self.eps = eps + self.cache = List[nd.Array]() + for i in range(len(params)): + self.cache.append(nd.Array(params[i].shape())) + + fn step(inout self) raises: + for i in range(len(self.params)): + self.cache[i] = ( + self.alpha * self.cache[i] + + (1 - self.alpha) + * self.params[i].grad() + * self.params[i].grad() + ) + self.cache[i].clear_args() + self.params[i] -= ( + self.lr + * self.params[i].grad() + / (nd.sqrt(self.cache[i]) + self.eps) + ) + self.params[i].clear_args() diff --git a/endia/optim/sgd.mojo b/endia/optim/sgd.mojo new file mode 100644 index 0000000..9ca9339 --- /dev/null +++ b/endia/optim/sgd.mojo @@ -0,0 +1,50 @@ +import endia as nd + + +struct SGD: + var params: List[nd.Array] + var lr: SIMD[dtype, 1] + var momentum: SIMD[dtype, 1] + var weight_decay: SIMD[dtype, 1] + var velocity: List[nd.Array] + + fn __init__( + inout self, + params: List[nd.Array], + lr: SIMD[dtype, 1] = 0.01, + momentum: SIMD[dtype, 1] = 0, + weight_decay: SIMD[dtype, 1] = 0, + ) raises: + self.params = params + self.lr = lr + self.momentum = momentum + self.weight_decay = weight_decay + self.velocity = List[nd.Array]() + if momentum > 0: + for i in range(len(params)): + self.velocity.append(nd.Array(params[i].shape())) + + fn step(inout self) raises: + for i in range(len(self.params)): + if self.momentum > 0 and self.weight_decay > 0: + self.velocity[i] = self.momentum * self.velocity[ + i + ] - self.lr * ( + self.params[i].grad() + self.weight_decay * self.params[i] + ) + self.velocity[i].clear_args() + self.params[i] += self.velocity[i] + elif self.momentum == 0 and self.weight_decay > 0: + self.params[i] -= self.lr * ( + self.params[i].grad() + self.weight_decay * self.params[i] + ) + elif self.momentum > 0 and self.weight_decay == 0: + self.velocity[i] = ( + self.momentum * self.velocity[i] + - self.lr * self.params[i].grad() + ) + self.velocity[i].clear_args() + self.params[i] += self.velocity[i] + else: + self.params[i] -= self.lr * self.params[i].grad() + self.params[i].clear_args() diff --git a/endia/readme.md b/endia/readme.md new file mode 100644 index 0000000..28839ce --- /dev/null +++ b/endia/readme.md @@ -0,0 +1,2 @@ +# The Endia Core Library + diff --git a/endia/utils/__init__.mojo b/endia/utils/__init__.mojo new file mode 100644 index 0000000..6b5d51a --- /dev/null +++ b/endia/utils/__init__.mojo @@ -0,0 +1,6 @@ +from ._array_shape import * +from ._string_utils import * +from .aliases import dtype, nelts, NA +from .general import * +from .array_conversions import * +from ._viz import * diff --git a/endia/utils/_array_shape.mojo b/endia/utils/_array_shape.mojo new file mode 100644 index 0000000..8fa370c --- /dev/null +++ b/endia/utils/_array_shape.mojo @@ -0,0 +1,385 @@ +from memory.arc import Arc +from algorithm import vectorize, parallelize + +# from utils import Variant +from time import now +from random import seed, random_ui64 +import math +from python import Python + + +fn compute_stride(shape: List[Int]) -> List[Int]: + var stride = List[Int]() + for _ in range(len(shape)): + stride.append(1) + for i in range(len(shape) - 2, -1, -1): + stride[i] = stride[i + 1] * shape[i + 1] + return stride + + +############################################################################################################### +# Array Shape +############################################################################################################### + + +fn default_shape_op_fwd( + inout curr: ArrayShape, args: List[ArrayShape] +) raises -> None: + # print("default_shape_op_fwd") + pass + + +@value +struct ShapeNode(CollectionElement): + """ + ShapeNode is a reference-counted object designed to encapsulate the shape information of an array. It stores + crucial details such as the list of dimensions (shape), ge_zero sizes along each dimension (stride), the starting + index (storage_offset), and other shape-related metadata. ShapeNode plays a crucial role in facilitating efficient shape + computations, particularly for view operations where the shape needs to be computed without accessing the actual data. + """ + + var shape: List[Int] + var stride: List[Int] + var storage_offset: Int + var ndim: Int + var size: Int + var args: List[Arc[Self]] + var shape_op_fwd: fn (inout ArrayShape, List[ArrayShape]) raises -> None + var is_computed: Bool + var name: String + + fn __init__( + inout self, shape: List[Int], stride: List[Int], storage_offset: Int + ): + self.shape = shape + self.stride = stride + self.storage_offset = storage_offset + self.ndim = len(shape) + self.size = 1 + for i in range(len(shape)): + self.size *= shape[i] + self.args = List[Arc[Self]]() + self.shape_op_fwd = default_shape_op_fwd + self.is_computed = False + self.name = "" + # print("creating ShapeNode") + + # fn __del__(owned self): + # print("deleting ShapeNode") + + +@value +struct ArrayShape(CollectionElement, Stringable): + """ + ArrayShape is a lightweight handle that provides an efficient way to work with and manage array shapes. It serves + as a convenient wrapper around a ShapeNode instance, allowing for inexpensive copying of shapes without duplicating + the underlying shape data. ArrayShape offers initialization methods to create instances from shape lists and stride. + """ + + var shape_node: Arc[ShapeNode] + + fn __init__( + inout self, + shape: List[Int], + stride: List[Int] = List[Int](), + storage_offset: Int = 0, + ): + var _stride = stride + if len(stride) != len(shape): + _stride = List[Int]() + for _ in range(len(shape)): + _stride.append(1) + for i in range(len(shape) - 2, -1, -1): + _stride[i] = shape[i + 1] * _stride[i + 1] + self.shape_node = Arc[ShapeNode]( + ShapeNode( + shape, + _stride, + storage_offset, + ) + ) + + fn __init__(inout self, shape_node: Arc[ShapeNode]): + self.shape_node = shape_node + + fn __copyinit__(inout self, other: ArrayShape): + self.shape_node = other.shape_node + + fn __moveinit__(inout self, owned other: ArrayShape): + self.shape_node = other.shape_node^ + + fn __str__(self) -> String: + var storage_offset: String = "" + + fn list_to_string(list: List[Int]) -> String: + var out: String = "" + out += "[" + for i in range(len(list)): + out += str(list[i]) + if i < len(list) - 1: + out += ", " + out += "]" + return out + + var out: String = "" + out += ( + storage_offset + + "shape: " + + list_to_string(self.shape_node[].shape) + + "\n" + ) + out += ( + storage_offset + + "stride: " + + list_to_string(self.shape_node[].stride) + + "\n" + ) + out += ( + storage_offset + + "storage_offset: " + + str(self.shape_node[].storage_offset) + + "\n" + ) + return out + + fn fwd( + self, + ) -> fn (inout ArrayShape, List[ArrayShape]) raises -> None: + return self.shape_node[].shape_op_fwd + + fn set_fwd( + inout self, + fwd: fn (inout ArrayShape, List[ArrayShape]) raises -> None, + ): + self.shape_node[].shape_op_fwd = fwd + + fn execute_fwd(inout self, args: List[ArrayShape]) raises: + self.shape_node[].shape_op_fwd(self, args) + + fn args_(inout self, args: List[ArrayShape]): + self.shape_node[].args.clear() + for arg in args: + self.shape_node[].args.append(arg[].shape_node) + + fn args(self) -> List[ArrayShape]: + var res = List[ArrayShape]() + for arg in self.shape_node[].args: + res.append(ArrayShape(arg[])) + return res + + fn set_shape(inout self, shape: List[Int]): + self.shape_node[].shape = shape + + fn shape(self) -> List[Int]: + return self.shape_node[].shape + + fn set_stride(inout self, stride: List[Int]): + self.shape_node[].stride = stride + + fn stride(self) -> List[Int]: + return self.shape_node[].stride + + fn set_storage_offset(inout self, storage_offset: Int): + self.shape_node[].storage_offset = storage_offset + + fn storage_offset(self) -> Int: + return self.shape_node[].storage_offset + + fn set_ndim(inout self, ndim: Int): + self.shape_node[].ndim = ndim + + fn ndim(self) -> Int: + return self.shape_node[].ndim + + fn set_size(inout self, size: Int): + self.shape_node[].size = size + + fn size(self) -> Int: + return self.shape_node[].size + + # fn kwargs_(inout self, kwargs: List[Int]): + # self.shape_node[].kwargs = kwargs + + # fn kwargs(self) -> List[Int]: + # return self.shape_node[].kwargs + + fn is_computed(self) -> Bool: + return self.shape_node[].is_computed + + fn is_computed_(inout self, is_computed: Bool): + self.shape_node[].is_computed = is_computed + + fn setup( + inout self, + shape: List[Int], + stride: List[Int] = List[Int](), + storage_offset: Int = 0, + ) raises: + var _stride = compute_stride(shape) if len(stride) == 0 else stride + var size = 1 + for i in range(len(shape)): + size *= shape[i] + self.set_shape(shape) + self.set_stride(_stride) + self.set_storage_offset(storage_offset) + self.set_ndim(len(shape)) + self.set_size(size) + + +# recursive shape computation until all parents are computed +fn compute_shape(inout curr: ArrayShape, store_args: Bool = False) raises: + """ + Recursively computes the shape of an ArrayShape. + + Args: + curr: The ArrayShape to compute the shape of. + store_args: Whether to store the arguments of the ArrayShape after computation, i.e. retaining the computation graph. + + Constraints: + - The ArrayShape must have a forward function set. + """ + if curr.ndim() == -1: + raise "Error: Placeholder Error in compute_shape." + if curr.is_computed() or len(curr.args()) == 0: + return + # print("compute shape") + for arg in curr.args(): + compute_shape(arg[], store_args) + var fwd = curr.fwd() + fwd(curr, curr.args()) + curr.is_computed_(True) + if not store_args: + curr.shape_node[].args.clear() + + +fn setup_array_shape( + args: List[ArrayShape], + name: String, + fwd: fn (inout ArrayShape, List[ArrayShape]) raises -> None, +) raises -> ArrayShape: + """ + Sets up an ArrayShape with the given arguments, name, and forward function. Does not compute the actual shape. + + Args: + args: The arguments of the ArrayShape. + name: The name of the ArrayShape. + fwd: The forward function of the ArrayShape. + + Returns: + The ArrayShape, with its actualy shape not computed yet. + """ + var res_arr = ArrayShape(0) + res_arr.args_(args) + res_arr.set_fwd(fwd) + res_arr.shape_node[].name = name + return res_arr + + +fn array_shape_to_list(arg: ArrayShape) -> List[Int]: + """ + Converts an ArrayShape to a list of Ints. Does not retain the stride and storage offset information. + """ + return arg.shape() + + +fn list_to_array_shape(arg: List[Int]) -> ArrayShape: + """ + Converts a list of Ints to an ArrayShape object. + """ + return ArrayShape(arg) + + +fn array_shape_to_slices(arg: ArrayShape) raises -> List[Slice]: + """ + Converts an ArrayShape to a list of slices. + + Args: + arg: The ArrayShape to convert. + + Returns: + A list of slices. + """ + var data = arg.shape() + var slices = List[Slice]() + if len(data) % 3 != 0: + raise "Invalid data for slices" + for i in range(0, len(data), 3): + slices.append(Slice(data[i], data[i + 1], data[i + 2])) + return slices + + +fn slices_to_array_shape(arg: List[Slice]) -> ArrayShape: + """ + Converts a list of slices to an ArrayShape. + + Args: + arg: The list of slices to convert. + + Returns: + The ArrayShape. + """ + var data = List[Int]() + for i in range(len(arg)): + data.append(arg[i].start) + data.append(arg[i].end) + data.append(arg[i].step) + return ArrayShape(data) + + +fn copy_shape(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Setups the shape of an array to be the same as another ArrayShape. + + Args: + curr: The ArrayShape to store the result of the computation. + args: The ArrayShape to copy. + """ + curr.setup(args[0].shape()) + + +fn broadcast_shapes(inout curr: ArrayShape, args: List[ArrayShape]) raises: + """ + Computes the shape resulting from broadcasting two arrays together. + + Args: + curr: The ArrayShape to store the result of the computation. + args: Lhs ArrayShape, rhs ArrayShape, axes to ignore during broadcasting. + + #### Constraints: + - The shape of each dimension of args[0] and args[1] must be equal or one of them must be 1 (seen from right to left). + """ + var arg0 = args[0] + var arg1 = args[1] + var shape0 = arg0.shape_node[].shape + var shape1 = arg1.shape_node[].shape + var shape = List[Int]() + var diff = len(shape0) - len(shape1) + + if diff > 0: + # shape0 has more dimensions + for i in range(diff): + shape.append(shape0[i]) + for i in range(len(shape1)): + if shape0[i + diff] == shape1[i]: + shape.append(shape0[i + diff]) + elif shape0[i + diff] == 1: + shape.append(shape1[i]) + elif shape1[i] == 1: + shape.append(shape0[i + diff]) + else: + raise "Error: Incompatible shapes for broadcasting" + else: + # shape1 has more dimensions + for i in range(-diff): + shape.append(shape1[i]) + for i in range(len(shape0)): + if shape1[i - diff] == shape0[i]: + shape.append(shape1[i - diff]) + elif shape1[i - diff] == 1: + shape.append(shape0[i]) + elif shape0[i] == 1: + shape.append(shape1[i - diff]) + else: + raise "Error: Incompatible shapes for broadcasting" + + curr.setup(shape) diff --git a/endia/utils/_string_utils.mojo b/endia/utils/_string_utils.mojo new file mode 100644 index 0000000..2c9506f --- /dev/null +++ b/endia/utils/_string_utils.mojo @@ -0,0 +1,249 @@ +from memory.arc import Arc +from algorithm import vectorize, parallelize + +# from utils import Variant +from time import now +from random import seed, random_ui64 +import math +from python import Python +from math import isnan, isinf + + +fn float_to_string[dtype: DType](in_num: SIMD[dtype, 1]) -> String: + if isinf(in_num): + return "inf" + + if isnan(in_num): + return "nan" + + if ( + dtype == DType.uint32 + or dtype == DType.uint64 + or dtype == DType.int32 + or dtype == DType.int64 + ): + return String(int(in_num)) + + # Determine the sign of the number + var sign: String = "" + var num = in_num + if num < 0: + sign = "-" + num = -num + + var str_num = String(num) + if num >= 100 and num < 999: + if num % int(num) == 0: + return sign + str_num[:4] + return sign + str_num[: min(len(str_num), 8)] + elif num >= 10 and num < 100: + if num % int(num) == 0: + return sign + str_num[:3] + return sign + str_num[: min(len(str_num), 7)] + elif num >= 1 and num < 10: + if num % int(num) == 0: + return sign + str_num[:2] + return sign + str_num[: min(len(str_num), 6)] + elif num >= 0.1 and num < 1: + return sign + str_num[: min(len(str_num), 6)] + elif num >= 0.01 and num < 0.1: + return sign + str_num[: min(len(str_num), 6)] + elif num >= 0.001 and num < 0.01: + return sign + str_num[: min(len(str_num), 6)] + else: + return format_scientific(in_num) + + +fn format_scientific[dtype: DType](in_num: SIMD[dtype, 1]) -> String: + if in_num == 0: + return "0." + + # Determine the sign of the number + var sign: String = "" + var num = in_num + if num < 0: + sign = "-" + num = -num + else: + sign = "" + + # Find the exponent + var exponent: Int = 0 + while num >= 10 or (num != 0 and num < 1): + if num >= 10: + num /= 10 + exponent += 1 + else: + num *= 10 + exponent -= 1 + + var num_int = int(num * 10000) + var result: String = "" + result += sign + result += String(num_int // 10000) + result += "." + + # Append the decimal digits to the result string + var decimal_digits = String(num_int % 10000) + if len(decimal_digits) < 4: + var padding = String("0") * (4 - len(decimal_digits)) + decimal_digits = padding + decimal_digits + result += decimal_digits[:3] + result += "e" + result += String(exponent) + + return result + + +fn extract_array(s: String) raises -> Array: + """ + Extracts an array from a string. If is_complex is True, expression such as 1+2i or 1+2j are allowed.\n + If is_complex is False, only the real parts are read in. + """ + var shape = List[Int]() + var data = List[SIMD[dtype, 1]]() + var iterator = -1 + + fn is_digit(char: String) -> Bool: + var res = False + if ( + char == "0" + or char == "1" + or char == "2" + or char == "3" + or char == "4" + or char == "5" + or char == "6" + or char == "7" + or char == "8" + or char == "9" + ): + res = True + return res + + # infer shape of array by counting opening and closing brackets + for i in range(len(s)): + var char = s[i] + if char == "[": + iterator += 1 + if shape.size <= iterator: + shape.append(0) + elif char == "]": + if shape[iterator - 1] == 0 and iterator > 0: + shape[iterator] += 1 + iterator -= 1 + + # read in dim of last axis + var i = 0 + for i in range(len(s)): + var char = s[i] + if is_digit(char): + var counter = 1 + for j in range(i, len(s)): + var digit = s[j] + if digit == "]": + break + elif digit == ",": + counter += 1 + shape.append(counter) + break + + # var is_complex = False + + # read in actual data as dtype + i = 0 + while i < len(s): + var char = s[i] + if is_digit(char): + # var counter = 1 + var digit: String = "" + var start = i + for j in range(start, len(s)): + var c = s[j] + if c == "]" or c == "[" or c == ",": + break + else: + digit += c if c != " " else "" + i += 1 + + # compute number in front of comma: + var real: String = "" + var imag: String = "" + var is_imag = False + for j in range(len(digit)): + if digit[j] == "+" or digit[j] == "i" or digit[j] == "j": + is_imag = True + continue + if is_imag: + imag += digit[j] + else: + real += digit[j] + + var order = 0 + for j in range(len(real)): + if real[j] == ".": + break + order += 1 + + var number: SIMD[dtype, 1] = 0 + for j in range(len(real)): + if real[j] == ".": + continue + number += SIMD[dtype, 1](atol(real[j])) * SIMD[dtype, 1]( + 10 + ) ** (order - 1) + + order -= 1 + data.append(number) + + i += 1 + + var new_shape = List[Int]() + for i in range(1, shape.size): + new_shape.append(shape[i]) + + var res = Array(new_shape) + for i in range(res.size()): + res.store(i, data[i]) + return res + + +fn build_out_string( + arg: Array, inout out: String, inout idx: Int, dim: Int, indent: String +): + """ + Internal recursive function to build the out string for the __call__ function. + """ + var skip_threshold = 10 + + out += "[" + var row_size = arg.node[].shape[].shape[dim] + + for i in range(row_size): + if ( + row_size > skip_threshold + and i >= skip_threshold // 2 + and i < row_size - skip_threshold // 2 + ): + if i == skip_threshold // 2: + out += ( + "...\n" + indent if dim + < arg.node[].shape[].ndim - 1 else "..., " + ) + idx += ( + arg.node[].shape[].shape[dim + 1] if dim + < arg.node[].shape[].ndim - 1 else 1 + ) + continue + if dim < arg.node[].shape[].ndim - 1: + build_out_string(arg, out, idx, dim + 1, indent + " ") + if i < row_size - 1: + out += ",\n" + indent + else: + out += float_to_string(arg.load(idx)) + if arg.is_complex(): + out += " + " + float_to_string(arg.load_imag(idx)) + "j" + idx += 1 + if i < row_size - 1: + out += ", " + out += "]" diff --git a/endia/utils/_viz.mojo b/endia/utils/_viz.mojo new file mode 100644 index 0000000..b36c038 --- /dev/null +++ b/endia/utils/_viz.mojo @@ -0,0 +1,127 @@ +from endia import Array +import os +from python import Python + + +fn graph_to_json(args: List[Array]) raises -> String: + for arg in args: + var out = arg[] + reset_node_id_recursive(out) + + var trace = List[Array]() + + for arg in args: + var out = arg[] + top_order_rec(out, trace) + + var json_str: String = "{" + json_str += "\n" + json_str += ' "nodes": [\n' + for i in range(len(trace)): + var curr = trace[i] + json_str += " {\n" + json_str += ' "type": ' + '"' + curr.name() + '",\n' + json_str += ' "id": ' + str(curr.id()) + ",\n" + json_str += ' "is_view": ' # str(curr.is_view()) + ",\n" + if curr.is_view(): + json_str += "1,\n" + else: + json_str += "0,\n" + json_str += ' "shape": [' + for j in range(len(curr.shape())): + json_str += str(curr.shape()[j]) + if j != len(curr.shape()) - 1: + json_str += ", " + json_str += "],\n" + json_str += " " + '"args": [' + for j in range(len(curr.args())): + var arg = curr.args()[j] + json_str += str(arg.id()) + if j != len(curr.args()) - 1: + json_str += ", " + json_str += "],\n" + json_str += ' "grad": ' + if curr.has_grad(): + json_str += str(curr.grad().id()) + else: + json_str += "null" + json_str += "\n" + json_str += " }" + if i != len(trace) - 1: + json_str += ", " + json_str += "\n" + json_str += " ]\n" + json_str += "}" + json_str += "\n" + + return json_str + + +fn write_graph_to_json( + arg: Array, filename: String = "computation_graph.json" +) raises: + """ + Write the computation graph of the given list of arrays to a json file. + """ + var file = open(filename, "w") + file.write(graph_to_json(arg)) + file.close() + + +fn visualize_graph(arg: Array, filename: String = "computation_graph") raises: + """ + Visualize the computation graph of the given list of arrays using graphviz. + """ + var graphviz = Python.import_module("graphviz") + var json = Python.import_module("json") + var Digraph = graphviz.Digraph + + var graph_data = json.loads(graph_to_json(arg)) + var dot = Digraph(comment=filename) + dot.attr(rankdir="TB") + + # Set graph background to black + dot.attr(bgcolor="#2a2436") + + # Change node attributes for better visibility on black background + dot.attr( + "node", + shape="box", + style="rounded,filled", + roundedcorners="0.1", + fontcolor="black", + ) + + for node in graph_data["nodes"]: + var node_color = "white" # Dark gray for standard nodes + if len(node["args"]) == 0: + node_color = "#4dacff" # Steel blue for input nodes + elif node["is_view"] == 1: + node_color = "#ffc2a3" # Dim gray for view nodes + + var attrs = " " + str(node["id"]) + ', "' + node["type"] + '", ' + var shape = node["shape"] + attrs += "[" + for j in range(len(shape)): + attrs += str(shape[j]) + if j != len(shape) - 1: + attrs += "," + attrs += "] " + + dot.node(str(node["id"]), attrs, fillcolor=node_color) + + for arg in node["args"]: + dot.edge(str(arg), str(node["id"]), color="white") + + # Add grad edge if exists + if node["grad"] is not None: + dot.edge( + str(node["id"]), + str(node["grad"]), + color="#FF6347", # Tomato red for gradient edges + style="dashed", + constraint="false", + ) + + # Use render method with cleanup=True to avoid intermediate files + dot.render(filename, format="png", cleanup=True) diff --git a/endia/utils/aliases.mojo b/endia/utils/aliases.mojo new file mode 100644 index 0000000..a428e26 --- /dev/null +++ b/endia/utils/aliases.mojo @@ -0,0 +1,11 @@ +from endia import Array + + +alias dtype = DType.float32 + + +fn nelts[dtype: DType]() -> Int: + return simdwidthof[dtype]() * 2 + + +alias NA = List[Array]() diff --git a/endia/utils/array_conversions.mojo b/endia/utils/array_conversions.mojo new file mode 100644 index 0000000..478d585 --- /dev/null +++ b/endia/utils/array_conversions.mojo @@ -0,0 +1,115 @@ +from math import isnan, isinf +from endia import Array +from endia.functional import * + + +@always_inline +fn to_torch(arg: Array) raises -> PythonObject: + """ + Converts an endia Array to a torch tensor. + """ + if arg.is_complex(): + # print("\narg:") + # print(arg) + var real = real(arg) + var imag = imag(arg) + # print("\nreal:") + # print(real) + # print("\nimag:") + # print(imag) + var torch = Python.import_module("torch") + var torch_real = to_torch_tensor(real).requires_grad_( + arg.requires_grad() + ) + var torch_imag = to_torch_tensor(imag).requires_grad_( + arg.requires_grad() + ) + var res = torch.complex(torch_real, torch_imag) + return res + return to_torch_tensor(arg) + + +@always_inline +fn to_torch_tensor(arg: Array) raises -> PythonObject: + var torch = Python.import_module("torch") + var shape = arg.shape() + var size = 1 + for i in range(shape.size): + size *= shape[i] + var torch_shape = PythonObject([]) + for i in range(arg.ndim()): + torch_shape.append(shape[i]) + var res = torch.zeros(size=torch_shape).to(torch.float64) + + var flattened = res.flatten() + for i in range(size): + flattened[i] = arg.load(i) + + if arg.requires_grad(): + res.requires_grad = True + + return res + + +@always_inline +fn is_close_to_tensor( + arr: Array, arr_torch: PythonObject, atol: Float32 = 10e-3 +) raises -> Bool: + """ + Asserts that the values in the endia Array and the torch tensor are equal. + """ + # var int_tol = int(100000) + var tolerance = int(1 / atol) + var shape = arr.shape() + var size = 1 + for i in range(shape.size): + size *= shape[i] + var flattened = arr_torch.flatten() + var rel_false_values = SIMD[dtype, 1](0) + for i in range(size): + var arr_val = (arr.load(i) * tolerance).roundeven() + var torch_val = ( + flattened[i].to_float64().cast[dtype]() * tolerance + ).roundeven() + if not isnan(arr_val) and not isinf(arr_val): + if arr_val != torch_val: + # if the read in number is greater than a certain threshold, neglect the values after the comma + var int_tol = SIMD[dtype, 1](100) + if ( + abs(arr.load(i)) > int_tol + and abs(flattened[i].to_float64().cast[dtype]()) > int_tol + ): + if ( + abs(arr_val // tolerance).roundeven() + == abs(torch_val // tolerance).roundeven() + ): + continue + print( + "Incorrect value at index", + i, + " - endia_val=", + arr.load(i), + " - torch_val=", + flattened[i].to_float64().cast[dtype](), + ) + rel_false_values += 1 + return False + return True + + +@always_inline +fn is_close( + arr: Array, arr_torch: PythonObject, atol: Float32 = 10e-3 +) raises -> Bool: + """ + Asserts that the values in the endia Array and the torch tensor are equal. + """ + if arr.is_complex(): + var real = real(arr) + var imag = imag(arr) + var torch_real = arr_torch.real + var torch_imag = arr_torch.imag + return is_close_to_tensor( + real, torch_real, atol + ) and is_close_to_tensor(imag, torch_imag, atol) + return is_close_to_tensor(arr, arr_torch, atol) diff --git a/endia/utils/general.mojo b/endia/utils/general.mojo new file mode 100644 index 0000000..db4aa47 --- /dev/null +++ b/endia/utils/general.mojo @@ -0,0 +1,82 @@ +from endia import Array +from endia.functional import * + + +fn reset_node_id_recursive(inout curr: Array): + for arg in curr.args(): + if arg[].node[].id != -1: + reset_node_id_recursive(arg[]) + curr.id_(-1) + + +fn top_order_rec(inout curr: Array, inout trace: List[Array]): + for arg in curr.args(): + if arg[].node[].id == -1: + top_order_rec(arg[], trace) + curr.id_(len(trace)) + trace.append(curr) + + +fn zero_grad_recursive(inout curr: Array): + for arg in curr.args(): + if arg[].id() == -1: + zero_grad_recursive(arg[]) + curr.id_(1) + curr.remove_grad() + + +fn zero_grad_rec(inout curr: Array): + reset_node_id_recursive(curr) + zero_grad_recursive(curr) + reset_node_id_recursive(curr) + + +fn remove_grad_recursive(inout curr: Array): + for arg in curr.args(): + if arg[].id() == -1: + remove_grad_recursive(arg[]) + curr.id_(1) + curr.remove_grad() + + +fn remove_grad_rec(inout curr: Array): + reset_node_id_recursive(curr) + remove_grad_recursive(curr) + reset_node_id_recursive(curr) + + +@value +struct InplaceInfo: + var type: Int + var idx: Int + var arg_id: Int + + fn __init__(inout self, type: Int, idx: Int, arg_id: Int = -1): + self.type = type + self.idx = idx + self.arg_id = arg_id + + +fn concat_lists(*lists: List[Int]) -> List[Int]: + var res = List[Int]() + for l in lists: + for i in l[]: + res.append(i[]) + return res + + +fn list_contains(list: List[Int], val: Int) -> Bool: + """ + Checks if a list fo Ints contains a specific value. + + Args: + list: The list of Ints to check. + val: The value to check for. + + Returns: + True if the value is in the list, False otherwise. + """ + for i in range(len(list)): + if list[i] == val: + return True + return False diff --git a/endia/utils/reamde.md b/endia/utils/reamde.md new file mode 100644 index 0000000..9034470 --- /dev/null +++ b/endia/utils/reamde.md @@ -0,0 +1 @@ +# Utility Functions \ No newline at end of file diff --git a/examples/__init__.mojo b/examples/__init__.mojo new file mode 100644 index 0000000..6a46e8e --- /dev/null +++ b/examples/__init__.mojo @@ -0,0 +1,2 @@ +from .simple_examples import * +from .viz_examples import * diff --git a/examples/readme.md b/examples/readme.md new file mode 100644 index 0000000..c8715ef --- /dev/null +++ b/examples/readme.md @@ -0,0 +1 @@ +# Endia Examples \ No newline at end of file diff --git a/examples/run_examples.mojo b/examples/run_examples.mojo new file mode 100644 index 0000000..32cf1a7 --- /dev/null +++ b/examples/run_examples.mojo @@ -0,0 +1,7 @@ +from examples import * + + +def run_examples(): + example1() + example2() + viz_example1() diff --git a/examples/simple_examples/__init__.mojo b/examples/simple_examples/__init__.mojo new file mode 100644 index 0000000..c0200a1 --- /dev/null +++ b/examples/simple_examples/__init__.mojo @@ -0,0 +1,2 @@ +from ._example1 import * +from ._example2 import * diff --git a/examples/simple_examples/_example1.mojo b/examples/simple_examples/_example1.mojo new file mode 100644 index 0000000..30a5fba --- /dev/null +++ b/examples/simple_examples/_example1.mojo @@ -0,0 +1,44 @@ +import endia as nd + + +# Define the function +def foo(x: nd.Array) -> nd.Array: + return nd.sum(x**2) + + +def example1(): + print("Example 1 ###########################################") + + print("\nImperative grad computation:") + # Initialize variable - requires_grad=True needed! + x = nd.array("[1.0, 2.0, 3.0]", requires_grad=True) + + # Compute result, first and second order derivatives + y = foo(x) + y.backward(retain_graph=True) + dy_dx = x.grad() + d2y_dx2 = nd.grad(outs=dy_dx, inputs=x)[nd.Array] + + # Print results + print(y) # out: [14.0] + print(dy_dx) # out: [2.0, 4.0, 6.0] + print(d2y_dx2) # out: [2.0, 2.0, 2.0] + + print("\nFunctional grad computation:") + + # Create callables for the jacobian and hessian + foo_jac = nd.grad(foo) + foo_hes = nd.grad(foo_jac) + + # Initialize variable - no requires_grad=True needed + x = nd.array("[1.0, 2.0, 3.0]") + + # Compute result and derivatives (with type hints) + y = foo(x) + dy_dx = foo_jac(x)[nd.Array] + d2y_dx2 = foo_hes(x)[nd.Array] + + # Print results + print(y) # out: [14.0] + print(dy_dx) # out: [2.0, 4.0, 6.0] + print(d2y_dx2) # out: [2.0, 2.0, 2.0] diff --git a/examples/simple_examples/_example2.mojo b/examples/simple_examples/_example2.mojo new file mode 100644 index 0000000..7aed4cd --- /dev/null +++ b/examples/simple_examples/_example2.mojo @@ -0,0 +1,52 @@ +import endia as nd + + +fn foo(x: List[nd.Array]) raises -> nd.Array: + return nd.sum((x[0] * x[0] + x[1] * x[1])) + + +def example2(): + print("\n\nExample 2 ###########################################") + + print("\nImperative grad computation:") + + x = nd.Array("[[1.0,2.0,3.0],[1.0,2.0,3.0]]", requires_grad=True) + y = nd.Array("[[1.0,2.0,3.0],[1.0,2.0,3.0]]", requires_grad=True) + + grads = nd.grad(outs=foo(List(x, y)), inputs=List(x, y), retain_graph=True)[ + List[nd.Array] + ] + x_grad = grads[0] + y_grad = grads[1] + print("grads:") + print(str(x_grad)) + print(str(y_grad)) + + x_hessians = nd.grad(outs=x_grad, inputs=List(x, y))[List[nd.Array]] + y_hessians = nd.grad(outs=y_grad, inputs=List(x, y))[List[nd.Array]] + print("hessians:") + print(str(x_hessians[0])) + print(str(x_hessians[1])) + print(str(y_hessians[0])) + print(str(y_hessians[1])) + + print("\nFunctional grad computation:") + + x = nd.Array("[[1.0,2.0,3.0],[1.0,2.0,3.0]]") + y = nd.Array("[[1.0,2.0,3.0],[1.0,2.0,3.0]]") + + foo_grads = nd.grad(foo, argnums=List(0, 1)) + grads = foo_grads(List(x, y))[List[nd.Array]] + x_grad = grads[0] + y_grad = grads[1] + print("grads:") + print(str(x_grad)) + print(str(y_grad)) + + foo_hessians = nd.grad(foo_grads, argnums=List(0, 1)) + hessians = foo_hessians(List(x, y))[List[nd.Array]] + print("hessians:") + print(str(hessians[0])) + print(str(hessians[1])) + print(str(hessians[2])) + print(str(hessians[3])) diff --git a/examples/viz_examples/__init__.mojo b/examples/viz_examples/__init__.mojo new file mode 100644 index 0000000..2d6a180 --- /dev/null +++ b/examples/viz_examples/__init__.mojo @@ -0,0 +1 @@ +from .simple_viz import * diff --git a/examples/viz_examples/simple_viz.mojo b/examples/viz_examples/simple_viz.mojo new file mode 100644 index 0000000..7edae6c --- /dev/null +++ b/examples/viz_examples/simple_viz.mojo @@ -0,0 +1,11 @@ +import endia as nd + + +def viz_example1(): + a = nd.arange(List(2, 3), requires_grad=True) + b = nd.arange(List(3, 4), requires_grad=True) + c = nd.arange(List(2, 2, 4), requires_grad=True) + + res = nd.sum(a @ b + c) + + nd.utils.visualize_graph(res, "./assets/example1_graph") diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0a18b3e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +torch>=2.3.1 +numpy>=2.0.0 +graphviz>=0.20.3 diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..5a73e25 --- /dev/null +++ b/setup.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# Function to compare versions +version_compare() { + local v1=$1 + local v2=$2 + if [[ $(printf "%s\n" "$v1" "$v2" | sort -V | head -n 1) != "$v2" ]]; then + return 1 # v1 < v2 + else + return 0 # v1 >= v2 + fi +} + +# Check if Mojo is available and its version is at least 24.4.0 +mojo_version=$(mojo -v | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') +if [[ ! $mojo_version || $(version_compare "$mojo_version" "24.4.0") -ne 0 ]]; then + echo "Mojo version 24.4.0 or higher is required but not found." + echo "Please install Mojo by following the instructions at: https://docs.modular.com/max/install" + exit 1 +fi + +# Check if MAX is available and its version is at least 24.4.0 +max_version=$(max -v | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') +if [[ ! $max_version || $(version_compare "$max_version" "24.4.0") -ne 0 ]]; then + echo "MAX version 24.4.0 or higher is required but not found." + echo "Please install MAX by following the instructions at: https://docs.modular.com/max/install" + exit 1 +fi + +# Check Modular version +modular_version=$(modular -v | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+') +echo "Modular version $modular_version" + +# Install Python libraries if not already installed +pip install -r requirements.txt + +# Create a temporary main file to run tests +echo "from tests.run_tests import run_tests + +def main(): + run_tests()" > temp_main.mojo + +# Run the temporary main file +mojo temp_main.mojo + +# Remove the temporary main file +rm temp_main.mojo diff --git a/tests/__init__.mojo b/tests/__init__.mojo new file mode 100644 index 0000000..2fc5cf8 --- /dev/null +++ b/tests/__init__.mojo @@ -0,0 +1,2 @@ +from .integration_tests import * +from .test_endia import * diff --git a/tests/integration_tests/__init__.mojo b/tests/integration_tests/__init__.mojo new file mode 100644 index 0000000..836f39c --- /dev/null +++ b/tests/integration_tests/__init__.mojo @@ -0,0 +1 @@ +from .random_function_tests import * diff --git a/tests/integration_tests/random_function_tests.mojo b/tests/integration_tests/random_function_tests.mojo new file mode 100644 index 0000000..e48b85b --- /dev/null +++ b/tests/integration_tests/random_function_tests.mojo @@ -0,0 +1,102 @@ +import endia as nd +from python import Python + + +def foo(args: List[nd.Array]) -> nd.Array: + a = args[0] + b = args[1] + c = args[2] + return nd.sum( + nd.mul( + nd.cos(nd.sin(nd.cos(nd.cos(nd.add(nd.matmul(a, b), c))))), + nd.matmul(a, b), + ) + ) + + +def foo_torch(args: List[PythonObject]) -> PythonObject: + torch = Python.import_module("torch") + a = args[0] + b = args[1] + c = args[2] + return torch.sum( + torch.mul( + torch.cos( + torch.sin( + torch.cos(torch.cos(torch.add(torch.matmul(a, b), c))) + ) + ), + torch.matmul(a, b), + ) + ) + + +def run_test_foo(msg: String = "foo"): + # endia args initialization + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(4, 5)) + arg2 = nd.randn(List(2, 3, 5)) + args = List(arg0, arg1, arg2) + + # torch args initialization + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + arg2_torch = nd.utils.to_torch(arg2) + args_torch = List(arg0_torch, arg1_torch, arg2_torch) + + # fucntional calls + res = foo(args) + res_torch = foo_torch(args_torch) + + # check if the results are close + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_foo_grad(msg: String = "foo_backward"): + # endia args initialization + a = nd.randn(List(3, 4), requires_grad=True) + b = nd.randn(List(2, 4, 5), requires_grad=True) + c = nd.randn(List(2, 3, 5), requires_grad=True) + args = List(a, b, c) + + # torch args initialization + a_torch = nd.utils.to_torch(a) + b_torch = nd.utils.to_torch(b) + c_torch = nd.utils.to_torch(c) + args_torch = List(a_torch, b_torch, c_torch) + + # function calls + res = foo(args) + res_torch = foo_torch(args_torch) + + # backward pass + res.backward() + res_torch.backward() + + # get the gradients for nd and torch + grad_a = a.grad() + grad_b = b.grad() + grad_c = c.grad() + grad_a_torch = a_torch.grad + grad_b_torch = b_torch.grad + grad_c_torch = c_torch.grad + + # check if the results are close + test_success = True + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + test_success = False + if not nd.utils.is_close(grad_a, grad_a_torch): + print("\033[31mTest failed\033[0m", msg, "grad_a") + test_success = False + if not nd.utils.is_close(grad_b, grad_b_torch): + print("\033[31mTest failed\033[0m", msg, "grad_b") + test_success = False + if not nd.utils.is_close(grad_c, grad_c_torch): + print("\033[31mTest failed\033[0m", msg, "grad_c") + test_success = False + if test_success: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/integration_tests/test_foo_jit.mojo b/tests/integration_tests/test_foo_jit.mojo new file mode 100644 index 0000000..68ef8a0 --- /dev/null +++ b/tests/integration_tests/test_foo_jit.mojo @@ -0,0 +1,33 @@ +import endia as torch + + +def foo(args: List[torch.Array]) -> torch.Array: + a = args[0] + b = args[1] + c = args[2] + return torch.sum(torch.relu(a @ b + c)) + + +def test_foo_jit(): + foo_jit = torch.jit(torch.value_and_grad(foo)) + + a = torch.arange(List(3, 4)) + b = torch.arange(List(4, 5)) + c = torch.arange(List(3, 5)) + + var res = foo_jit(List(a, b, c))[List[List[torch.Array]]] + # print(res[0][0]) + fwd_res = res[0][0] + a_grad = res[1][0] + b_grad = res[1][1] + c_grad = res[1][2] + # var fwd_res = foo(List(a,b,c)) + # fwd_res.backward() + # var a_grad = a.grad() + # var b_grad = b.grad() + # var c_grad = c.grad() + + print(fwd_res) + print(a_grad) + print(b_grad) + print(c_grad) diff --git a/tests/integration_tests/test_max_integration.mojo b/tests/integration_tests/test_max_integration.mojo new file mode 100644 index 0000000..012bc04 --- /dev/null +++ b/tests/integration_tests/test_max_integration.mojo @@ -0,0 +1,65 @@ +from endia import * + + +def test_max_graph(): + # Define the computation graph + var a = randu(List(2, 3, 4), requires_grad=True) + var b = arange(List(4, 5), requires_grad=True) + var c = arange(List(3, 5), requires_grad=True) + # var res = squeeze(unsqueeze(sin(a @ b + c), List(0,2))) + res = ge_zero(a) + # res = ( + # squeeze(a) * 2 + # ) # squeeze(reduce_add(relu((a @ b) + c), List(0,1,2))) * 2 + print(res) + # a.T()#reduce_add(a,0)#sin(a @ b) + cos(c), List(0)) + + # Define trace, args and outputs of the graph + var trace = top_order(res) + var args = List(a, b, c) + var outputs = List[Array]() + outputs.append(res) + + # create a callable model with MAX + var callable = build_model(args, outputs, trace) + + # execute_max_graph the model + for i in range(1): + var output = execute_model(args, outputs, callable) + if i % 100 == 0: + print("JIT Iteration:", i) + print(output[0]) + + +# def main(): +# test_max_graph() + + +def foo(args: List[Array]) -> Array: + a = args[0] + b = args[1] + c = args[2] + return relu(ge_zero(a)) + # return ( + # a @ b + # ) + c # sum(relu(a)) / a.ndim()# squeeze(reduce_add(relu((a @ b) + c), List(0,1,2)) ) * ones(List(1)) + + +def test_max_integration(): + foo_jit = jit(foo) + + a = randn(List(2, 3, 4)) + b = arange(List(4, 5)) + c = arange(List(3, 5)) + + for i in range(1): + res = foo_jit(List(a, b, c))[Array] + print(res) + + # a = arange(List(2, 3, 4)) * 10 + # res = foo_jit(List(a))[Array] + # print(res) + + # a = arange(List(2, 3, 4)) * 0.1 + # res = foo_jit(List(a))[Array] + # print(res) diff --git a/tests/reamde.md b/tests/reamde.md new file mode 100644 index 0000000..cae503b --- /dev/null +++ b/tests/reamde.md @@ -0,0 +1 @@ +# Tests \ No newline at end of file diff --git a/tests/run_tests.mojo b/tests/run_tests.mojo new file mode 100644 index 0000000..f6a2b57 --- /dev/null +++ b/tests/run_tests.mojo @@ -0,0 +1,144 @@ +from tests import * +from benchmarks import * + + +def run_unit_tests(): + # Unit Test: Test unary ops + run_test_to_abs() + run_test_to_abs_grad() + run_test_to_abs_complex() + + run_test_acos() + run_test_acos_grad() + # run_test_acos_complex() + + run_test_asin() + run_test_asin_grad() + # run_test_asin_complex() + + run_test_atan() + run_test_atan_grad() + # run_test_atan_complex() + + run_test_cos() + run_test_cos_grad() + run_test_cos_complex() + + run_test_cosh() + run_test_cosh_grad() + run_test_cosh_complex() + + run_test_exp() + run_test_exp_grad() + run_test_exp_complex() + + run_test_log() + run_test_log_grad() + run_test_log_complex() + + run_test_neg() + run_test_neg_grad() + run_test_neg_complex() + + run_test_reciprocal() + run_test_reciprocal_grad() + run_test_reciprocal_complex() + + run_test_relu() + run_test_relu_grad() + # note: relu only for real numbers + + run_test_sigmoid() + run_test_sigmoid_grad() + # note: sigmoid only for real numbers + + run_test_sign() + # note: sign not differentiable + run_test_sign_complex() + + run_test_sin() + run_test_sin_grad() + run_test_sin_complex() + + run_test_sqrt() + run_test_sqrt_grad() + run_test_sqrt_complex() + + run_test_square() + run_test_square_grad() + run_test_square_complex() + + run_test_tan() + run_test_tan_grad() + # run_test_tan_complex() + + run_test_tanh() + run_test_tanh_grad() + run_test_tanh_complex() + + # Unit Test: Test binary ops + run_test_add() + run_test_add_grad() + run_test_add_complex() + run_test_sub() + run_test_sub_grad() + run_test_sub_complex() + run_test_mul() + run_test_mul_grad() + run_test_mul_complex() + run_test_div() + run_test_div_grad() + run_test_div_complex() + run_test_pow() + run_test_pow_grad() + run_test_pow_complex() + run_test_matmul() + run_test_matmul_grad() + run_test_matmul_complex() + + # Unit Test: Test reduce ops + run_test_reduce_add() + run_test_reduce_add_grad() + + run_test_mean() + run_test_mean_grad() + + # Needs FIX: Mojo breaks when using the name 'var' from pytorch + # run_test_variance() + # run_test_variance_grad() + + run_test_std() + run_test_std_grad() + + # Unit Test: Test view ops + run_test_expand() + run_test_expand_grad() + run_test_permute() + run_test_permute_grad() + run_test_squeeze() + run_test_squeeze_grad() + run_test_as_strided() + run_test_as_strided_grad() + run_test_reshape() + run_test_reshape_grad() + + # Unit Tests: Test comparison ops + run_test_ge_zero() + run_test_greater_equal() + run_test_greater() + run_test_less_equal() + run_test_less() + + +def run_integration_tests(): + # integration Tests: Test random functions + run_test_foo() + run_test_foo_grad() + + +def run_tests(): + """ + This is the main function that runs all the tests and benchmarks. + """ + run_unit_tests() + # run_integration_tests() diff --git a/tests/test_endia/__init__.mojo b/tests/test_endia/__init__.mojo new file mode 100644 index 0000000..12bdda1 --- /dev/null +++ b/tests/test_endia/__init__.mojo @@ -0,0 +1 @@ +from .test_functional import * diff --git a/tests/test_endia/test_functional/__init__.mojo b/tests/test_endia/test_functional/__init__.mojo new file mode 100644 index 0000000..c9fd1f4 --- /dev/null +++ b/tests/test_endia/test_functional/__init__.mojo @@ -0,0 +1,8 @@ +from .test_binary_ops import * +from .test_comparison_ops import * +from .test_index_ops import * +from .test_init_ops import * +from .test_reduce_ops import * +from .test_unary_ops import * +from .test_view_ops import * +from .test_utils import * diff --git a/tests/test_endia/test_functional/test_binary_ops/__init__.mojo b/tests/test_endia/test_functional/test_binary_ops/__init__.mojo new file mode 100644 index 0000000..2f1d4d6 --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/__init__.mojo @@ -0,0 +1,6 @@ +from .test_add_op import * +from .test_div_op import * +from .test_matmul_op import * +from .test_mul_op import * +from .test_pow_op import * +from .test_sub_op import * diff --git a/tests/test_endia/test_functional/test_binary_ops/test_add_op.mojo b/tests/test_endia/test_functional/test_binary_ops/test_add_op.mojo new file mode 100644 index 0000000..f023516 --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/test_add_op.mojo @@ -0,0 +1,63 @@ +import endia as nd +from python import Python + + +def run_test_add(msg: String = "add"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.add(arg0, arg1) + res_torch = torch.add(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_add_grad(msg: String = "add_grad"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4), requires_grad=True) + arg1 = nd.randn(List(3, 4), requires_grad=True) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sum(nd.add(arg0, arg1)) + res_torch = torch.sum(torch.add(arg0_torch, arg1_torch)) + + res.backward(retain_graph=True) + res_torch.backward() + + grad0 = arg0.grad() + grad1 = arg1.grad() + + grad0_torch = arg0_torch.grad + grad1_torch = arg1_torch.grad + + if not nd.utils.is_close(grad0, grad0_torch): + print("\033[31mTest failed\033[0m", msg, "grad0") + if not nd.utils.is_close(grad1, grad1_torch): + print("\033[31mTest failed\033[0m", msg, "grad1") + if nd.utils.is_close(grad0, grad0_torch) and nd.utils.is_close( + grad1, grad1_torch + ): + print("\033[32mTest passed\033[0m", msg) + + +def run_test_add_complex(msg: String = "add_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg1 = nd.randn_complex(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.add(arg0, arg1) + res_torch = torch.add(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_binary_ops/test_div_op.mojo b/tests/test_endia/test_functional/test_binary_ops/test_div_op.mojo new file mode 100644 index 0000000..45c9f94 --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/test_div_op.mojo @@ -0,0 +1,62 @@ +import endia as nd +from python import Python + + +def run_test_div(msg: String = "div"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.div(arg0, arg1) + res_torch = torch.div(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_div_grad(msg: String = "div_grad"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4), requires_grad=True) + arg1 = nd.randn(List(3, 4), requires_grad=True) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sum(nd.div(arg0, arg1)) + res_torch = torch.sum(torch.div(arg0_torch, arg1_torch)) + + res.backward(retain_graph=True) + res_torch.backward() + + grad0 = arg0.grad() + grad1 = arg1.grad() + grad0_torch = arg0_torch.grad + grad1_torch = arg1_torch.grad + + if not nd.utils.is_close(grad0, grad0_torch): + print("\033[31mTest failed\033[0m", msg, "grad0") + if not nd.utils.is_close(grad1, grad1_torch): + print("\033[31mTest failed\033[0m", msg, "grad1") + if nd.utils.is_close(grad0, grad0_torch) and nd.utils.is_close( + grad1, grad1_torch + ): + print("\033[32mTest passed\033[0m", msg) + + +def run_test_div_complex(msg: String = "div_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg1 = nd.randn_complex(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.div(arg0, arg1) + res_torch = torch.div(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_binary_ops/test_matmul_op.mojo b/tests/test_endia/test_functional/test_binary_ops/test_matmul_op.mojo new file mode 100644 index 0000000..d073a96 --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/test_matmul_op.mojo @@ -0,0 +1,62 @@ +import endia as nd +from python import Python + + +def run_test_matmul(msg: String = "matmul"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(4, 5)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.matmul(arg0, arg1) + res_torch = torch.matmul(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_matmul_grad(msg: String = "matmul_grad"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4), requires_grad=True) + arg1 = nd.randn(List(4, 5), requires_grad=True) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sum(nd.matmul(arg0, arg1)) + res_torch = torch.sum(torch.matmul(arg0_torch, arg1_torch)) + + res.backward() + res_torch.backward() + + grad0 = arg0.grad() + grad1 = arg1.grad() + grad0_torch = arg0_torch.grad + grad1_torch = arg1_torch.grad + + if not nd.utils.is_close(grad0, grad0_torch): + print("\033[31mTest failed\033[0m", msg, "grad0") + if not nd.utils.is_close(grad1, grad1_torch): + print("\033[31mTest failed\033[0m", msg, "grad1") + if nd.utils.is_close(grad0, grad0_torch) and nd.utils.is_close( + grad1, grad1_torch + ): + print("\033[32mTest passed\033[0m", msg) + + +def run_test_matmul_complex(msg: String = "matmul_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg1 = nd.randn_complex(List(4, 5)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.matmul(arg0, arg1) + res_torch = torch.matmul(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_binary_ops/test_mul_op.mojo b/tests/test_endia/test_functional/test_binary_ops/test_mul_op.mojo new file mode 100644 index 0000000..d85973b --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/test_mul_op.mojo @@ -0,0 +1,62 @@ +import endia as nd +from python import Python + + +def run_test_mul(msg: String = "mul"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.mul(arg0, arg1) + res_torch = torch.mul(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_mul_grad(msg: String = "mul_grad"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4), requires_grad=True) + arg1 = nd.randn(List(3, 4), requires_grad=True) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sum(nd.mul(arg0, arg1)) + res_torch = torch.sum(torch.mul(arg0_torch, arg1_torch)) + + res.backward(retain_graph=True) + res_torch.backward() + + grad0 = arg0.grad() + grad1 = arg1.grad() + grad0_torch = arg0_torch.grad + grad1_torch = arg1_torch.grad + + if not nd.utils.is_close(grad0, grad0_torch): + print("\033[31mTest failed\033[0m", msg, "grad0") + if not nd.utils.is_close(grad1, grad1_torch): + print("\033[31mTest failed\033[0m", msg, "grad1") + if nd.utils.is_close(grad0, grad0_torch) and nd.utils.is_close( + grad1, grad1_torch + ): + print("\033[32mTest passed\033[0m", msg) + + +def run_test_mul_complex(msg: String = "mul_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg1 = nd.randn_complex(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.mul(arg0, arg1) + res_torch = torch.mul(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_binary_ops/test_pow_op.mojo b/tests/test_endia/test_functional/test_binary_ops/test_pow_op.mojo new file mode 100644 index 0000000..eacc7bb --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/test_pow_op.mojo @@ -0,0 +1,62 @@ +import endia as nd +from python import Python + + +def run_test_pow(msg: String = "pow"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.pow_to(arg0, arg1) + res_torch = torch.pow(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_pow_grad(msg: String = "pow_grad"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4), requires_grad=True) + arg1 = nd.randn(List(3, 4), requires_grad=True) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sum(arg0**arg1) + res_torch = torch.sum(arg0_torch**arg1_torch) + + res.backward(retain_graph=True) + res_torch.backward() + + grad0 = arg0.grad() + grad1 = arg1.grad() + grad0_torch = arg0_torch.grad + grad1_torch = arg1_torch.grad + + if not nd.utils.is_close(grad0, grad0_torch): + print("\033[31mTest failed\033[0m", msg, "grad0") + if not nd.utils.is_close(grad1, grad1_torch): + print("\033[31mTest failed\033[0m", msg, "grad1") + if nd.utils.is_close(grad0, grad0_torch) and nd.utils.is_close( + grad1, grad1_torch + ): + print("\033[32mTest passed\033[0m", msg) + + +def run_test_pow_complex(msg: String = "pow_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg1 = nd.randn_complex(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.pow_to(arg0, arg1) + res_torch = torch.pow(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_binary_ops/test_sub_op.mojo b/tests/test_endia/test_functional/test_binary_ops/test_sub_op.mojo new file mode 100644 index 0000000..29788d3 --- /dev/null +++ b/tests/test_endia/test_functional/test_binary_ops/test_sub_op.mojo @@ -0,0 +1,62 @@ +import endia as nd +from python import Python + + +def run_test_sub(msg: String = "sub"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4)) + arg1 = nd.randn(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sub(arg0, arg1) + res_torch = torch.sub(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sub_grad(msg: String = "sub_grad"): + torch = Python.import_module("torch") + arg0 = nd.randn(List(2, 3, 4), requires_grad=True) + arg1 = nd.randn(List(3, 4), requires_grad=True) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sum(nd.sub(arg0, arg1)) + res_torch = torch.sum(torch.sub(arg0_torch, arg1_torch)) + + res.backward(retain_graph=True) + res_torch.backward() + + grad0 = arg0.grad() + grad1 = arg1.grad() + grad0_torch = arg0_torch.grad + grad1_torch = arg1_torch.grad + + if not nd.utils.is_close(grad0, grad0_torch): + print("\033[31mTest failed\033[0m", msg, "grad0") + if not nd.utils.is_close(grad1, grad1_torch): + print("\033[31mTest failed\033[0m", msg, "grad1") + if nd.utils.is_close(grad0, grad0_torch) and nd.utils.is_close( + grad1, grad1_torch + ): + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sub_complex(msg: String = "sub_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg1 = nd.randn_complex(List(3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + arg1_torch = nd.utils.to_torch(arg1) + + res = nd.sub(arg0, arg1) + res_torch = torch.sub(arg0_torch, arg1_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_comparison_ops/__init__.mojo b/tests/test_endia/test_functional/test_comparison_ops/__init__.mojo new file mode 100644 index 0000000..4eab8f6 --- /dev/null +++ b/tests/test_endia/test_functional/test_comparison_ops/__init__.mojo @@ -0,0 +1,5 @@ +from .test_ge_zero_op import * +from .test_greater_equal_op import * +from .test_greater_op import * +from .test_less_equal_op import * +from .test_less_op import * diff --git a/tests/test_endia/test_functional/test_comparison_ops/test_ge_zero_op.mojo b/tests/test_endia/test_functional/test_comparison_ops/test_ge_zero_op.mojo new file mode 100644 index 0000000..077f31d --- /dev/null +++ b/tests/test_endia/test_functional/test_comparison_ops/test_ge_zero_op.mojo @@ -0,0 +1,15 @@ +import endia as nd +from python import Python + + +def run_test_ge_zero(msg: String = "ge_zero"): + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.ge_zero(arr) + res_torch = (arr_torch > 0).float() + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_comparison_ops/test_greater_equal_op.mojo b/tests/test_endia/test_functional/test_comparison_ops/test_greater_equal_op.mojo new file mode 100644 index 0000000..3ddc3f8 --- /dev/null +++ b/tests/test_endia/test_functional/test_comparison_ops/test_greater_equal_op.mojo @@ -0,0 +1,15 @@ +import endia as nd +from python import Python + + +def run_test_greater_equal(msg: String = "greater_equal"): + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = arr >= 0 + res_torch = (arr_torch >= 0).float() + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_comparison_ops/test_greater_op.mojo b/tests/test_endia/test_functional/test_comparison_ops/test_greater_op.mojo new file mode 100644 index 0000000..b8c190e --- /dev/null +++ b/tests/test_endia/test_functional/test_comparison_ops/test_greater_op.mojo @@ -0,0 +1,15 @@ +import endia as nd +from python import Python + + +def run_test_greater(msg: String = "greater"): + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = arr > 0 + res_torch = (arr_torch > 0).float() + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_comparison_ops/test_less_equal_op.mojo b/tests/test_endia/test_functional/test_comparison_ops/test_less_equal_op.mojo new file mode 100644 index 0000000..f2892ec --- /dev/null +++ b/tests/test_endia/test_functional/test_comparison_ops/test_less_equal_op.mojo @@ -0,0 +1,15 @@ +import endia as nd +from python import Python + + +def run_test_less_equal(msg: String = "less_equal"): + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = arr <= 0 + res_torch = (arr_torch <= 0).float() + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_comparison_ops/test_less_op.mojo b/tests/test_endia/test_functional/test_comparison_ops/test_less_op.mojo new file mode 100644 index 0000000..0090625 --- /dev/null +++ b/tests/test_endia/test_functional/test_comparison_ops/test_less_op.mojo @@ -0,0 +1,15 @@ +import endia as nd +from python import Python + + +def run_test_less(msg: String = "less"): + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = arr < 0 + res_torch = (arr_torch < 0).float() + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_index_ops/__init__.mojo b/tests/test_endia/test_functional/test_index_ops/__init__.mojo new file mode 100644 index 0000000..3a37430 --- /dev/null +++ b/tests/test_endia/test_functional/test_index_ops/__init__.mojo @@ -0,0 +1 @@ +from .test_concat_op import * diff --git a/tests/test_endia/test_functional/test_index_ops/test_concat_op.mojo b/tests/test_endia/test_functional/test_index_ops/test_concat_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_index_ops/test_concat_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_init_ops/__init__.mojo b/tests/test_endia/test_functional/test_init_ops/__init__.mojo new file mode 100644 index 0000000..0388360 --- /dev/null +++ b/tests/test_endia/test_functional/test_init_ops/__init__.mojo @@ -0,0 +1 @@ +from .test_init_ops import * diff --git a/tests/test_endia/test_functional/test_init_ops/test_init_ops.mojo b/tests/test_endia/test_functional/test_init_ops/test_init_ops.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_init_ops/test_init_ops.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_loss_ops/__init__.mojo b/tests/test_endia/test_functional/test_loss_ops/__init__.mojo new file mode 100644 index 0000000..c9f820d --- /dev/null +++ b/tests/test_endia/test_functional/test_loss_ops/__init__.mojo @@ -0,0 +1 @@ +from .test_mse_op import * diff --git a/tests/test_endia/test_functional/test_loss_ops/test_mse_op.mojo b/tests/test_endia/test_functional/test_loss_ops/test_mse_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_loss_ops/test_mse_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_reduce_ops/__init__.mojo b/tests/test_endia/test_functional/test_reduce_ops/__init__.mojo new file mode 100644 index 0000000..776d863 --- /dev/null +++ b/tests/test_endia/test_functional/test_reduce_ops/__init__.mojo @@ -0,0 +1,4 @@ +from .test_reduce_add_op import * +from .test_mean_op import * +from .test_std_op import * +from .test_variance_op import * diff --git a/tests/test_endia/test_functional/test_reduce_ops/test_mean_op.mojo b/tests/test_endia/test_functional/test_reduce_ops/test_mean_op.mojo new file mode 100644 index 0000000..3abaa98 --- /dev/null +++ b/tests/test_endia/test_functional/test_reduce_ops/test_mean_op.mojo @@ -0,0 +1,42 @@ +import endia as nd +from python import Python + + +def run_test_mean(msg: String = "mean"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4)) + arr_torch = nd.utils.to_torch(arr) + + axis = List(1) + axis_torch = [1] + + res = nd.mean(arr, axis) + res_torch = torch.mean(arr_torch, axis_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_mean_grad(msg: String = "mean_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + axis = List(1) + axis_torch = [1] + + res = nd.sum(nd.squeeze(nd.mean(arr, axis))) + res_torch = torch.sum(torch.mean(arr_torch, axis_torch).squeeze()) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_reduce_ops/test_reduce_add_op.mojo b/tests/test_endia/test_functional/test_reduce_ops/test_reduce_add_op.mojo new file mode 100644 index 0000000..69c9f6f --- /dev/null +++ b/tests/test_endia/test_functional/test_reduce_ops/test_reduce_add_op.mojo @@ -0,0 +1,42 @@ +import endia as nd +from python import Python + + +def run_test_reduce_add(msg: String = "reduce_add"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4)) + arr_torch = nd.utils.to_torch(arr) + + axis = List(1) + axis_torch = [1] + + res = nd.reduce_add(arr, axis) + res_torch = torch.sum(arr_torch, axis_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_reduce_add_grad(msg: String = "reduce_add_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + axis = List(1) + axis_torch = [1] + + res = nd.sum(nd.reduce_add(arr, axis)) + res_torch = torch.sum(torch.sum(arr_torch, axis_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_reduce_ops/test_std_op.mojo b/tests/test_endia/test_functional/test_reduce_ops/test_std_op.mojo new file mode 100644 index 0000000..15c90ad --- /dev/null +++ b/tests/test_endia/test_functional/test_reduce_ops/test_std_op.mojo @@ -0,0 +1,42 @@ +import endia as nd +from python import Python + + +def run_test_std(msg: String = "std"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4)) + arr_torch = nd.utils.to_torch(arr) + + axis = List(1) + axis_torch = [1] + + res = nd.std(arr, axis) + res_torch = torch.std(arr_torch, axis_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_std_grad(msg: String = "std_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + axis = List(1) + axis_torch = [1] + + res = nd.sum(nd.std(arr, axis)) + res_torch = torch.sum(torch.std(arr_torch, axis_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_reduce_ops/test_variance_op.mojo b/tests/test_endia/test_functional/test_reduce_ops/test_variance_op.mojo new file mode 100644 index 0000000..704426f --- /dev/null +++ b/tests/test_endia/test_functional/test_reduce_ops/test_variance_op.mojo @@ -0,0 +1,44 @@ +import endia as nd +from python import Python + + +def run_test_variance(msg: String = "variance"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4)) + arr_torch = nd.utils.to_torch(arr) + variance_torch = Python.import_module("torch.var").variance + + axis = List(1) + axis_torch = [1] + + res = nd.variance(arr, axis) + res_torch = torch.variance_torch(arr_torch, axis_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_variance_grad(msg: String = "variance_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + variance_torch = Python.import_module("torch.var").variance + + axis = List(1) + axis_torch = [1] + + res = nd.sum(nd.variance(arr, axis)) + res_torch = torch.sum(torch.variance_torch(arr_torch, axis_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_spacial_ops/__init__.mojo b/tests/test_endia/test_functional/test_spacial_ops/__init__.mojo new file mode 100644 index 0000000..3ee6429 --- /dev/null +++ b/tests/test_endia/test_functional/test_spacial_ops/__init__.mojo @@ -0,0 +1 @@ +from .test_conv_op import * diff --git a/tests/test_endia/test_functional/test_spacial_ops/test_conv_op.mojo b/tests/test_endia/test_functional/test_spacial_ops/test_conv_op.mojo new file mode 100644 index 0000000..c714bc8 --- /dev/null +++ b/tests/test_endia/test_functional/test_spacial_ops/test_conv_op.mojo @@ -0,0 +1,90 @@ +import endia as nd + + +fn test_conv(ndim: Int) raises: + print("Testing " + String(ndim) + "D convolution:") + + var in_channels = 2 + var out_channels = 3 + + var input_shape: List[Int] + var kernel_size: List[Int] + var stride: List[Int] + var padding: List[Int] + var dilation: List[Int] + + var groups = 1 + + if ndim == 1: + input_shape = List[Int](in_channels, 8) + kernel_size = List[Int](3) + stride = List[Int](1) + padding = List[Int](0) + dilation = List[Int](0) + + var a = nd.arange(input_shape) + var kernel = nd.ones( + List[Int](out_channels, in_channels, kernel_size[0]) + ) + var bias = nd.zeros(List[Int](out_channels)) + + # print("Input:") + # print(a) + + # print("kernel:") + # print(kernel) + + # print("bias:") + # print(bias) + + var res = nd.conv1d( + a, + kernel, + bias, + in_channels, + out_channels, + kernel_size[0], + stride[0], + padding[0], + dilation[0], + groups, + ) + + print("out:") + print(res) + + # print() + # elif ndim == 2: + # input_shape = List[Int](in_channels, 32, 32) + # kernel_size = List[Int](3, 3) + # stride = List[Int](1, 1) + # padding = List[Int](1, 1) + # dilation = List[Int](1, 1) + + # var a = nd.arange(input_shape) + # print("Input:", a) + + # var res = nd.conv2d(a, in_channels, out_channels, kernel_size, stride, padding, dilation, groups) + + # print("out:", res) + # else: # 3D + # input_shape = List[Int](in_channels, 16, 16, 16) + # kernel_size = List[Int](4, 4, 4) + # stride = List[Int](2,2,1) + # padding = List[Int](1, 1, 1) + # dilation = List[Int](1, 1, 1) + + # var a = nd.arange(input_shape) + # print("Input:") + # print(a) + + # var res = nd.conv3d(a, in_channels, out_channels, kernel_size, stride, padding, dilation, groups) + + # print("out:") + # print(res) + + +fn test_conv() raises: + test_conv(1) + # test_conv(2) + # test_conv(3) diff --git a/tests/test_endia/test_functional/test_unary_ops/__init__.mojo b/tests/test_endia/test_functional/test_unary_ops/__init__.mojo new file mode 100644 index 0000000..a585d2c --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/__init__.mojo @@ -0,0 +1,20 @@ +from .test_abs_op import * +from .test_acos_op import * +from .test_asin_op import * +from .test_atan_op import * +from .test_cos_op import * +from .test_cosh_op import * +from .test_exp_op import * +from .test_log_op import * +from .test_neg_op import * +from .test_reciprocal_op import * +from .test_relu_op import * +from .test_sigmoid_op import * +from .test_sign_op import * +from .test_sin_op import * +from .test_sinh_op import * +from .test_sqrt_op import * +from .test_sqrt_op import * +from .test_square_op import * +from .test_tan_op import * +from .test_tanh_op import * diff --git a/tests/test_endia/test_functional/test_unary_ops/test_abs_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_abs_op.mojo new file mode 100644 index 0000000..9fbad0b --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_abs_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_to_abs(msg: String = "abs"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.to_abs(arr) + res_torch = torch.abs(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_to_abs_grad(msg: String = "abs_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.to_abs(arr)) + res_torch = torch.sum(torch.abs(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_to_abs_complex(msg: String = "abs_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.to_abs(arg0) + res_torch = torch.abs(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_acos_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_acos_op.mojo new file mode 100644 index 0000000..ebed19f --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_acos_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_acos(msg: String = "acos"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.acos(arr) + res_torch = torch.acos(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_acos_grad(msg: String = "acos_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.acos(arr)) + res_torch = torch.sum(torch.acos(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_acos_complex(msg: String = "acos_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.acos(arg0) + res_torch = torch.acos(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_asin_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_asin_op.mojo new file mode 100644 index 0000000..5f233d3 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_asin_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_asin(msg: String = "asin"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.asin(arr) + res_torch = torch.asin(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_asin_grad(msg: String = "asin_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.asin(arr)) + res_torch = torch.sum(torch.asin(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_asin_complex(msg: String = "asin_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.asin(arg0) + res_torch = torch.asin(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_atan_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_atan_op.mojo new file mode 100644 index 0000000..51afbde --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_atan_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_atan(msg: String = "atan"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.atan(arr) + res_torch = torch.atan(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_atan_grad(msg: String = "atan_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.atan(arr)) + res_torch = torch.sum(torch.atan(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_atan_complex(msg: String = "atan_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.atan(arg0) + res_torch = torch.atan(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_cos_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_cos_op.mojo new file mode 100644 index 0000000..ff25dcf --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_cos_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_cos(msg: String = "cos"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.cos(arr) + res_torch = torch.cos(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_cos_grad(msg: String = "cos_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.cos(arr)) + res_torch = torch.sum(torch.cos(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_cos_complex(msg: String = "cos_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.cos(arg0) + res_torch = torch.cos(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_cosh_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_cosh_op.mojo new file mode 100644 index 0000000..f073e32 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_cosh_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_cosh(msg: String = "cosh"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.cosh(arr) + res_torch = torch.cosh(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_cosh_grad(msg: String = "cosh_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.cosh(arr)) + res_torch = torch.sum(torch.cosh(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_cosh_complex(msg: String = "cosh_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.cosh(arg0) + res_torch = torch.cosh(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_exp_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_exp_op.mojo new file mode 100644 index 0000000..310641c --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_exp_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_exp(msg: String = "exp"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.exp(arr) + res_torch = torch.exp(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_exp_grad(msg: String = "exp_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.exp(arr)) + res_torch = torch.sum(torch.exp(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_exp_complex(msg: String = "exp_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.exp(arg0) + res_torch = torch.exp(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_log_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_log_op.mojo new file mode 100644 index 0000000..a8d83e5 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_log_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_log(msg: String = "log"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.log(arr) + res_torch = torch.log(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_log_grad(msg: String = "log_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.log(arr)) + res_torch = torch.sum(torch.log(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_log_complex(msg: String = "log_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.log(arg0) + res_torch = torch.log(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_neg_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_neg_op.mojo new file mode 100644 index 0000000..27a244d --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_neg_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_neg(msg: String = "neg"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.neg(arr) + res_torch = torch.neg(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_neg_grad(msg: String = "neg_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.neg(arr)) + res_torch = torch.sum(torch.neg(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_neg_complex(msg: String = "neg_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.neg(arg0) + res_torch = torch.neg(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_reciprocal_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_reciprocal_op.mojo new file mode 100644 index 0000000..1b930e8 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_reciprocal_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_reciprocal(msg: String = "reciprocal"): + torch = Python.import_module("torch") + arr = nd.arange(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.reciprocal(arr) + res_torch = torch.reciprocal(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_reciprocal_grad(msg: String = "reciprocal_grad"): + torch = Python.import_module("torch") + arr = nd.arange(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.reciprocal(arr)) + res_torch = torch.sum(torch.reciprocal(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_reciprocal_complex(msg: String = "reciprocal_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.reciprocal(arg0) + res_torch = torch.reciprocal(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_relu_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_relu_op.mojo new file mode 100644 index 0000000..109a379 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_relu_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_relu(msg: String = "relu"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.relu(arr) + res_torch = torch.relu(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_relu_grad(msg: String = "relu_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.relu(arr)) + res_torch = torch.sum(torch.relu(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_relu_complex(msg: String = "relu_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.relu(arg0) + res_torch = torch.relu(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_sigmoid_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_sigmoid_op.mojo new file mode 100644 index 0000000..c8056df --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_sigmoid_op.mojo @@ -0,0 +1,36 @@ +import endia as nd +from python import Python + + +def run_test_sigmoid(msg: String = "sigmoid"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sigmoid(arr) + res_torch = torch.sigmoid(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sigmoid_grad(msg: String = "sigmoid_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sigmoid(arr)) + res_torch = torch.sum(torch.sigmoid(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_sign_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_sign_op.mojo new file mode 100644 index 0000000..27e1fe4 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_sign_op.mojo @@ -0,0 +1,30 @@ +import endia as nd +from python import Python + + +def run_test_sign(msg: String = "sign"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sign(arr) + res_torch = torch.sgn(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sign_complex(msg: String = "sign_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.sign(arg0) + res_torch = torch.sgn(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_sin_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_sin_op.mojo new file mode 100644 index 0000000..f867784 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_sin_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_sin(msg: String = "sin"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sin(arr) + res_torch = torch.sin(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sin_grad(msg: String = "sin_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sin(arr)) + res_torch = torch.sum(torch.sin(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sin_complex(msg: String = "sign_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.sin(arg0) + res_torch = torch.sin(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_sinh_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_sinh_op.mojo new file mode 100644 index 0000000..794f98d --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_sinh_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_sinh(msg: String = "sinh"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sinh(arr) + res_torch = torch.sinh(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sinh_grad(msg: String = "sinh_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sinh(arr)) + res_torch = torch.sum(torch.sinh(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sinh_complex(msg: String = "sinh_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.sinh(arg0) + res_torch = torch.sinh(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_sqrt_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_sqrt_op.mojo new file mode 100644 index 0000000..dda1079 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_sqrt_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_sqrt(msg: String = "sqrt"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sqrt(arr) + res_torch = torch.sqrt(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sqrt_grad(msg: String = "sqrt_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sqrt(arr)) + res_torch = torch.sum(torch.sqrt(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_sqrt_complex(msg: String = "sqrt_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.sqrt(arg0) + res_torch = torch.sqrt(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_square_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_square_op.mojo new file mode 100644 index 0000000..d34cdfa --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_square_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_square(msg: String = "square"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.square(arr) + res_torch = torch.square(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_square_grad(msg: String = "square_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.square(arr)) + res_torch = torch.sum(torch.square(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_square_complex(msg: String = "square_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.square(arg0) + res_torch = torch.square(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_tan_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_tan_op.mojo new file mode 100644 index 0000000..8c77c97 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_tan_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_tan(msg: String = "tan"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.tan(arr) + res_torch = torch.tan(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_tan_grad(msg: String = "tan_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.tan(arr)) + res_torch = torch.sum(torch.tan(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_tan_complex(msg: String = "tan_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.tan(arg0) + res_torch = torch.tan(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_unary_ops/test_tanh_op.mojo b/tests/test_endia/test_functional/test_unary_ops/test_tanh_op.mojo new file mode 100644 index 0000000..8e4d101 --- /dev/null +++ b/tests/test_endia/test_functional/test_unary_ops/test_tanh_op.mojo @@ -0,0 +1,50 @@ +import endia as nd +from python import Python + + +def run_test_tanh(msg: String = "tanh"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.tanh(arr) + res_torch = torch.tanh(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_tanh_grad(msg: String = "tanh_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 30, 40), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.tanh(arr)) + res_torch = torch.sum(torch.tanh(arr_torch)) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_tanh_complex(msg: String = "tanh_complex"): + torch = Python.import_module("torch") + arg0 = nd.randn_complex(List(2, 3, 4)) + arg0_torch = nd.utils.to_torch(arg0) + + res = nd.tanh(arg0) + res_torch = torch.tanh(arg0_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_utils.mojo b/tests/test_endia/test_functional/test_utils.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_utils.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/__init__.mojo b/tests/test_endia/test_functional/test_view_ops/__init__.mojo new file mode 100644 index 0000000..c3d2b9c --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/__init__.mojo @@ -0,0 +1,13 @@ +from .test_array_slice_op import * +from .test_as_strided_op import * +from .test_detach_op import * +from .test_expand_op import * +from .test_imag_op import * +from .test_pad_op import * +from .test_permute_op import * +from .test_real_op import * +from .test_squeeze_op import * +from .test_unsqueeze_op import * +from .test_view_as_imag_op import * +from .test_view_as_real_op import * +from .test_view_op import * diff --git a/tests/test_endia/test_functional/test_view_ops/test_array_slice_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_array_slice_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_array_slice_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_as_strided_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_as_strided_op.mojo new file mode 100644 index 0000000..d8d5fb2 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_as_strided_op.mojo @@ -0,0 +1,64 @@ +import endia as nd +from python import Python + + +def run_test_as_strided(msg: String = "as_strided"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4)) # 12,4,1 + arr_torch = nd.utils.to_torch(arr) + + res = nd.as_strided( + arr, + shape=List(1, 2, 4, 2, 2), + stride=List(16, 8, 2, 2, 1), + storage_offset=0, + ) + res_torch = torch.as_strided( + arr_torch, + size=(1, 2, 4, 2, 2), + stride=(16, 8, 2, 2, 1), + storage_offset=0, + ) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_as_strided_grad(msg: String = "as_strided_grad"): + torch = Python.import_module("torch") + arr = nd.arange(List(3, 3, 3), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum( + nd.sin( + nd.as_strided( + arr, + shape=List(3, 3, 2), + stride=List(9, 3, 2), + storage_offset=0, + ) + ) + ) + res_torch = torch.sum( + torch.sin( + torch.as_strided( + arr_torch, + size=(3, 3, 2), + stride=(9, 3, 2), + storage_offset=0, + ) + ) + ) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_view_ops/test_detach_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_detach_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_detach_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_expand_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_expand_op.mojo new file mode 100644 index 0000000..098de97 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_expand_op.mojo @@ -0,0 +1,39 @@ +import endia as nd +from python import Python + + +def run_test_expand(msg: String = "expand"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 1, 4)) + arr_torch = nd.utils.to_torch(arr) + + shape = List(2, 2, 3, 4) + shape_torch = [2, 2, 3, 4] + + res = nd.expand(arr, shape) + res_torch = torch.broadcast_to(arr_torch, shape_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_expand_grad(msg: String = "expand_grad"): + torch = Python.import_module("torch") + arr = nd.arange(List(2, 3, 1), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sin(nd.expand(arr, List(2, 3, 4)))) + res_torch = torch.sum(torch.sin(arr_torch.broadcast_to((2, 3, 4)))) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_view_ops/test_imag_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_imag_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_imag_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_pad_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_pad_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_pad_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_permute_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_permute_op.mojo new file mode 100644 index 0000000..e48c1f4 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_permute_op.mojo @@ -0,0 +1,36 @@ +import endia as nd +from python import Python + + +def run_test_permute(msg: String = "permute"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.permute(arr, List(2, 0, 1)) + res_torch = torch.permute(arr_torch, dims=(2, 0, 1)) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_permute_grad(msg: String = "permute_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 3, 4), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum((nd.permute(arr, List(2, 0, 1)))) + res_torch = torch.sum((arr_torch.permute(2, 0, 1))) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_view_ops/test_real_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_real_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_real_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_squeeze_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_squeeze_op.mojo new file mode 100644 index 0000000..523622f --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_squeeze_op.mojo @@ -0,0 +1,36 @@ +import endia as nd +from python import Python + + +def run_test_squeeze(msg: String = "squeeze"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 1, 4)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.squeeze(arr) + res_torch = torch.squeeze(arr_torch) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_squeeze_grad(msg: String = "squeeze_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(2, 1, 4), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sin(nd.squeeze(arr))) + res_torch = torch.sum(torch.sin(torch.squeeze(arr_torch))) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) diff --git a/tests/test_endia/test_functional/test_view_ops/test_unsqueeze_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_unsqueeze_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_unsqueeze_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_view_as_imag_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_view_as_imag_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_view_as_imag_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_view_as_real_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_view_as_real_op.mojo new file mode 100644 index 0000000..92aa775 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_view_as_real_op.mojo @@ -0,0 +1,2 @@ +import endia as nd +from python import Python diff --git a/tests/test_endia/test_functional/test_view_ops/test_view_op.mojo b/tests/test_endia/test_functional/test_view_ops/test_view_op.mojo new file mode 100644 index 0000000..0077452 --- /dev/null +++ b/tests/test_endia/test_functional/test_view_ops/test_view_op.mojo @@ -0,0 +1,36 @@ +import endia as nd +from python import Python + + +def run_test_reshape(msg: String = "reshape"): + torch = Python.import_module("torch") + arr = nd.randn(List(3, 4, 5)) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sin(nd.reshape(arr, List(3, 2, 2, 5))) + res_torch = torch.sin(arr_torch.view(3, 2, 2, 5)) + + if not nd.utils.is_close(res, res_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg) + + +def run_test_reshape_grad(msg: String = "reshape_grad"): + torch = Python.import_module("torch") + arr = nd.randn(List(3, 4, 5), requires_grad=True) + arr_torch = nd.utils.to_torch(arr) + + res = nd.sum(nd.sin(nd.reshape(arr, List(3, 2, 2, 5)))) + res_torch = torch.sum(torch.sin(arr_torch.view(3, 2, 2, 5))) + + res.backward() + res_torch.backward() + + grad = arr.grad() + grad_torch = arr_torch.grad + + if not nd.utils.is_close(grad, grad_torch): + print("\033[31mTest failed\033[0m", msg) + else: + print("\033[32mTest passed\033[0m", msg)

    (z-0%a_;)-t$(m%N{bxdl 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⁢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�GV#5y`p)4sH+P^;A0$AZ;Ft!c+TU(UZ; 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