Obara handles addition/multiplication, Oturupon handles subtraction/division.
// finance.ifa - Compound interest and loan calculations
// Compound Interest: A = P(1 + r/n)^(nt)
ise compound_interest(principal, rate, years, compounds_per_year) {
ayanmo r = rate / 100;
ayanmo n = compounds_per_year;
ayanmo t = years;
ayanmo base = Obara.add(1, Oturupon.div(r, n));
ayanmo exponent = Obara.mul(n, t);
ayanmo multiplier = Obara.pow(base, exponent);
padap? Obara.mul(principal, multiplier);
}
// Monthly loan payment: M = P[r(1+r)^n]/[(1+r)^n-1]
ise monthly_payment(principal, annual_rate, years) {
ayanmo monthly_rate = Oturupon.div(annual_rate / 100, 12);
ayanmo n = Obara.mul(years, 12);
ayanmo pow_term = Obara.pow(Obara.add(1, monthly_rate), n);
ayanmo numerator = Obara.mul(monthly_rate, pow_term);
ayanmo denominator = Oturupon.sub(pow_term, 1);
padap? Obara.mul(principal, Oturupon.div(numerator, denominator));
}
// Usage
Irosu.fo("?? Financial Calculator");
Irosu.fo("---------------------");
ayanmo future_value = compound_interest(10000, 5, 10, 12);
Irosu.fo("$10,000 at 5% for 10 years = $" + Obara.round(future_value, 2));
ayanmo payment = monthly_payment(200000, 4.5, 30);
Irosu.fo("$200k mortgage at 4.5% = $" + Obara.round(payment, 2) + "/month");
// converter.ifa - Temperature and measurement conversions
// Temperature
ise celsius_to_fahrenheit(c) {
padap? Obara.add(Obara.mul(c, 1.8), 32);
}
ise fahrenheit_to_celsius(f) {
padap? Oturupon.div(Oturupon.sub(f, 32), 1.8);
}
// Distance
ise km_to_miles(km) {
padap? Obara.mul(km, 0.621371);
}
ise miles_to_km(miles) {
padap? Obara.mul(miles, 1.60934);
}
// Weight
ise kg_to_pounds(kg) {
padap? Obara.mul(kg, 2.20462);
}
ise pounds_to_kg(lbs) {
padap? Oturupon.div(lbs, 2.20462);
}
// Currency (with exchange rate)
ise convert_currency(amount, rate) {
padap? Obara.mul(amount, rate);
}
// Usage
Irosu.fo("?? Unit Converter");
Irosu.fo("------------------");
Irosu.fo("25°C = " + celsius_to_fahrenheit(25) + "°F");
Irosu.fo("100°F = " + Obara.round(fahrenheit_to_celsius(100), 1) + "°C");
Irosu.fo("100 km = " + Obara.round(km_to_miles(100), 2) + " miles");
Irosu.fo("75 kg = " + Obara.round(kg_to_pounds(75), 1) + " lbs");
Irosu.fo("$100 USD = ?" + convert_currency(100, 1500) + " NGN");
// stats.ifa - Statistical calculations
ise mean(values) {
ayanmo sum = Osa.sum(values);
padap? Oturupon.div(sum, Ogunda.len(values));
}
ise median(values) {
ayanmo sorted = Osa.sort(values);
ayanmo n = Ogunda.len(sorted);
ayanmo mid = Oturupon.div(n, 2);
ti (Oturupon.mod(n, 2) == 0) {
ayanmo a = Ogunda.get(sorted, mid - 1);
ayanmo b = Ogunda.get(sorted, mid);
padap? Oturupon.div(Obara.add(a, b), 2);
}
padap? Ogunda.get(sorted, mid);
}
ise variance(values) {
ayanmo avg = mean(values);
ayanmo sum_sq = 0;
fun v ninu values {
ayanmo diff = Oturupon.sub(v, avg);
ayanmo sum_sq = Obara.add(sum_sq, Obara.mul(diff, diff));
}
padap? Oturupon.div(sum_sq, Ogunda.len(values));
}
ise std_dev(values) {
padap? Oturupon.sqrt(variance(values));
}
ise percentile(values, p) {
ayanmo sorted = Osa.sort(values);
ayanmo index = Obara.mul(Oturupon.div(p, 100), Ogunda.len(sorted) - 1);
padap? Ogunda.get(sorted, Obara.floor(index));
}
// Usage
ayanmo data = [23, 45, 67, 12, 89, 34, 56, 78, 90, 11, 44, 66];
Irosu.fo("?? Statistics");
Irosu.fo("-------------");
Irosu.fo("Data: " + data);
Irosu.fo("Mean: " + Obara.round(mean(data), 2));
Irosu.fo("Median: " + median(data));
Irosu.fo("Std Dev: " + Obara.round(std_dev(data), 2));
Irosu.fo("25th percentile: " + percentile(data, 25));
Irosu.fo("75th percentile: " + percentile(data, 75));
// geometry.ifa - Shape area and volume calculations
ayanmo PI = 3.14159265359;
// 2D Shapes
ise circle_area(radius) {
padap? Obara.mul(PI, Obara.pow(radius, 2));
}
ise rectangle_area(width, height) {
padap? Obara.mul(width, height);
}
ise triangle_area(base, height) {
padap? Oturupon.div(Obara.mul(base, height), 2);
}
// 3D Shapes
ise sphere_volume(radius) {
padap? Obara.mul(Oturupon.div(4, 3), Obara.mul(PI, Obara.pow(radius, 3)));
}
ise cylinder_volume(radius, height) {
padap? Obara.mul(Obara.mul(PI, Obara.pow(radius, 2)), height);
}
ise cone_volume(radius, height) {
padap? Oturupon.div(cylinder_volume(radius, height), 3);
}
// Pythagorean theorem
ise hypotenuse(a, b) {
padap? Oturupon.sqrt(Obara.add(Obara.pow(a, 2), Obara.pow(b, 2)));
}
// Usage
Irosu.fo("?? Geometry Calculator");
Irosu.fo("----------------------");
Irosu.fo("Circle (r=5): " + Obara.round(circle_area(5), 2) + " sq units");
Irosu.fo("Rectangle (4x6): " + rectangle_area(4, 6) + " sq units");
Irosu.fo("Triangle (base=8, h=5): " + triangle_area(8, 5) + " sq units");
Irosu.fo("Sphere (r=3): " + Obara.round(sphere_volume(3), 2) + " cubic units");
Irosu.fo("Cylinder (r=2, h=10): " + Obara.round(cylinder_volume(2, 10), 2) + " cubic units");
Irosu.fo("Right triangle (3,4): hyp = " + hypotenuse(3, 4));