From 9e48c9a339cde73fb7477f252e98efe0fc6d8de0 Mon Sep 17 00:00:00 2001 From: Chris Boesch Date: Wed, 28 Feb 2024 13:01:11 +0100 Subject: [PATCH] Added notes to exercise 94 c_math. --- exercises/094_c_math.zig | 23 +++++++++++++++-------- patches/patches/094_c_math.patch | 6 +++--- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/exercises/094_c_math.zig b/exercises/094_c_math.zig index e650f6e..61e2c7b 100644 --- a/exercises/094_c_math.zig +++ b/exercises/094_c_math.zig @@ -1,19 +1,26 @@ // // Often, C functions are used where no equivalent Zig function exists -// yet. Since the integration of a C function is very simple, as already +// yet. Okay, that's getting less and less. ;-) +// +// Since the integration of a C function is very simple, as already // seen in the last exercise, it naturally offers itself to use the // very large variety of C functions for our own programs. // As an example: // // Let's say we have a given angle of 765.2 degrees. If we want to // normalize that, it means that we have to subtract X * 360 degrees -// to get the correct angle. How could we do that? A good method is -// to use the modulo function. But if we write "765.2 % 360", it won't -// work, because the standard modulo function works only with integer -// values. In the C library "math", there is a function called "fmod"; -// the "f" stands for floating and means that we can solve modulo for -// real numbers. With this function, it should be possible to normalize -// our angle. Let's go. +// to get the correct angle. +// How could we do that? A good method is to use the modulo function. +// But if we write "765.2 % 360", it only works with float values +// that are known at compile time. +// In Zig, we would use %mod(a, b) instead. +// +// Let us now assume that we cannot do this in Zig, but only with +// a C function from the standard library. In the library "math", +// there is a function called "fmod"; the "f" stands for floating +// and means that we can solve modulo for real numbers. With this +// function, it should be possible to normalize our angle. +// Let's go. const std = @import("std"); diff --git a/patches/patches/094_c_math.patch b/patches/patches/094_c_math.patch index 67da7e8..f8c7620 100644 --- a/patches/patches/094_c_math.patch +++ b/patches/patches/094_c_math.patch @@ -1,6 +1,6 @@ ---- exercises/094_c_math.zig 2023-10-22 14:00:02.909379696 +0200 -+++ answers/094_c_math.zig 2023-10-22 14:02:46.709025235 +0200 -@@ -19,7 +19,7 @@ +--- exercises/094_c_math.zig 2024-02-28 12:50:35.789939935 +0100 ++++ answers/094_c_math.zig 2024-02-28 12:53:57.910309471 +0100 +@@ -26,7 +26,7 @@ const c = @cImport({ // What do we need here?