Skip to content

Commit dc77b27

Browse files
authored
Merge branch 'main' into rfind
2 parents 1ebdd8c + 0044ec7 commit dc77b27

File tree

10 files changed

+759
-1
lines changed

10 files changed

+759
-1
lines changed

content/c-sharp/concepts/math-functions/terms/abs/abs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
Title: 'Abs()'
2+
Title: '.Abs()'
33
Description: 'Returns the absolute value of a specified number.'
44
Subjects:
55
- 'Computer Science'
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
Title: 'Acosh()'
3+
Description: 'Returns the inverse hyperbolic cosine of a specified number.'
4+
Subjects:
5+
- 'Computer Science'
6+
- 'Web Development'
7+
Tags:
8+
- 'Functions'
9+
- 'Math'
10+
- 'Methods'
11+
- 'Numbers'
12+
CatalogContent:
13+
- 'learn-c-sharp'
14+
- 'paths/computer-science'
15+
---
16+
17+
The **`Math.Acosh()`** method returns the inverse hyperbolic cosine (also known as hyperbolic arccosine) of a specified number. It computes the value whose hyperbolic cosine equals the given number.
18+
19+
## Syntax
20+
21+
```pseudo
22+
Math.Acosh(number);
23+
```
24+
25+
**Parameters:**
26+
27+
- `number`: A double-precision floating-point value greater than or equal to `1`, for which to compute the inverse hyperbolic cosine.
28+
29+
**Return value:**
30+
31+
- The inverse hyperbolic cosine of the specified number in radians as a `double`.
32+
- `NaN` if the input is less than `1` or `NaN`.
33+
34+
## Example: Basic Usage of `Math.Acosh()`
35+
36+
This example calculates the inverse hyperbolic cosine of a number using `Math.Acosh()` and displays the result in radians:
37+
38+
```cs
39+
using System;
40+
41+
public class Example
42+
{
43+
public static void Main()
44+
{
45+
double number = 1.5;
46+
double result = Math.Acosh(number);
47+
Console.WriteLine($"Math.Acosh({number}) = {result} radians");
48+
}
49+
}
50+
```
51+
52+
This example outputs the following:
53+
54+
```shell
55+
Math.Acosh(1.5) = 0.9624236501192069 radians
56+
```
57+
58+
## Codebyte Example
59+
60+
In this example, the `Math.Acosh()` method is used to calculate the inverse hyperbolic cosine of a specified number in radians and degrees:
61+
62+
```codebyte/csharp
63+
using System;
64+
65+
public class Example {
66+
public static void Main() {
67+
double number = 100.0;
68+
69+
// Calculate Acosh in radians
70+
double resultRadians = Math.Acosh(number);
71+
72+
// Convert radians to degrees
73+
double resultDegrees = resultRadians * (180.0 / Math.PI);
74+
75+
// Display results
76+
Console.WriteLine($"Math.Acosh({number}) = {resultRadians} radians");
77+
Console.WriteLine($"Math.Acosh({number}) = {resultDegrees} degrees");
78+
}
79+
}
80+
```
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
Title: 'Atanh()'
3+
Description: 'Returns the inverse hyperbolic tangent of a number.'
4+
Subjects:
5+
- 'Computer Science'
6+
- 'Code Foundations'
7+
Tags:
8+
- 'Arithmetic'
9+
- 'Methods'
10+
- 'Numbers'
11+
CatalogContent:
12+
- 'learn-c-sharp'
13+
- 'paths/computer-science'
14+
---
15+
16+
The **`Math.Atanh()`** method returns the inverse hyperbolic tangent (hyperbolic arctangent) of a specified number. The inverse hyperbolic tangent is the value whose hyperbolic tangent is the input number.
17+
18+
## Syntax
19+
20+
```pseudo
21+
Math.Atanh(value);
22+
```
23+
24+
**Parameters:**
25+
26+
- `value`: A double-precision floating-point number in the range `-1` to `1`, representing the hyperbolic tangent value.
27+
28+
**Return value:**
29+
30+
The `Math.Atanh()` method returns the inverse hyperbolic tangent of the given `value` as a `double`.
31+
32+
It returns:
33+
34+
- `NaN` (Not a Number) if the `value` is less than `-1` or greater than `1`.
35+
- `NegativeInfinity` if the `value` is exactly `-1`.
36+
- `PositiveInfinity` if the `value` is exactly `1`.
37+
38+
## Example: Basic Usage of `Math.Atanh()`
39+
40+
The following example demonstrates the basic usage of `Math.Atanh()`:
41+
42+
```cs
43+
using System;
44+
45+
class Program
46+
{
47+
static void Main()
48+
{
49+
double value = 0.5;
50+
double result = Math.Atanh(value);
51+
Console.WriteLine($"Atanh({value}) = {result}");
52+
}
53+
}
54+
```
55+
56+
This will output:
57+
58+
```shell
59+
Atanh(0.5) = 0.5493061443340548
60+
```
61+
62+
## Codebyte Example
63+
64+
In this example, different values are passed to `Math.Atanh()` to observe how the result changes:
65+
66+
```codebyte/csharp
67+
using System;
68+
69+
class Program
70+
{
71+
static void Main()
72+
{
73+
double[] testValues = { 0.25, 0.5, 0.75, 0.9, -0.5 };
74+
75+
foreach (double value in testValues)
76+
{
77+
double result = Math.Atanh(value);
78+
Console.WriteLine($"Atanh({value}) = {result:F4}");
79+
}
80+
}
81+
}
82+
```
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
Title: '.BigMul()'
3+
Description: 'Multiplies two integer values and returns the full extended result to prevent overflow.'
4+
Subjects:
5+
- 'Computer Science'
6+
- 'Code Foundations'
7+
Tags:
8+
- 'Methods'
9+
- 'Numbers'
10+
- 'Arithmetic'
11+
CatalogContent:
12+
- 'learn-c-sharp'
13+
- 'paths/computer-science'
14+
---
15+
16+
The **`Math.BigMul()`** method multiplies two integer values and returns the full extended result to avoid overflow. It ensures that the product fits within a larger data type when the operands are 32-bit or 64-bit integers.
17+
18+
## Syntax
19+
20+
```pseudo
21+
Math.BigMul(x, y);
22+
```
23+
24+
**Parameters:**
25+
26+
- `x`, `y`: The integers to be multiplied. These can be of type `int`, `uint`, `long`, or `ulong`.
27+
28+
**Return value:**
29+
30+
Returns the full product of `x` and `y` as a single 64-bit or 128-bit integer, depending on the input type:
31+
32+
- If `x` and `y` are of type `int` or `uint`, the return type is `long` and `ulong`, respectively.
33+
- If `x` and `y` are of type `long` or `ulong`, the return type is `Int128` and `UInt128`, respectively.
34+
35+
> **Note:** The `Int128` and `UInt128` types were introduced in .NET 7. In earlier versions, `Math.BigMul(long, long, out long high)` can be used to obtain the high and low 64-bit parts of the product.
36+
37+
## Example: Basic Usage
38+
39+
In this example, the full product of two `int` values is calculated without overflow:
40+
41+
```cs
42+
using System;
43+
44+
public class Example {
45+
public static void Main() {
46+
// Integer values (32-bit)
47+
int intX = 100000;
48+
int intY = 500000;
49+
50+
// Compute the product safely
51+
long intResult = Math.BigMul(intX, intY);
52+
53+
Console.WriteLine($"Math.BigMul({intX}, {intY}) = {intResult}");
54+
}
55+
}
56+
```
57+
58+
This example outputs the following:
59+
60+
```shell
61+
Math.BigMul(100000, 500000) = 50000000000
62+
```
63+
64+
## Codebyte Example
65+
66+
The following example demonstrates the use of `Math.BigMul()` to calculate the product of two integers that would normally cause an overflow with standard multiplication:
67+
68+
```codebyte/csharp
69+
using System;
70+
71+
public class Example {
72+
public static void Main (string[] args) {
73+
int x = 200000;
74+
int y = 300000;
75+
76+
// Normal multiplication (overflow)
77+
int normalResult = x * y;
78+
79+
// Math.BigMul() (no overflow)
80+
long bigMulResult = Math.BigMul(x, y);
81+
82+
Console.WriteLine($"Normal multiplication (overflow): {normalResult}");
83+
Console.WriteLine($"BigMul (no overflow): {bigMulResult}");
84+
}
85+
}
86+
```
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
Title: 'Clamp()'
3+
Description: 'Restricts a value to lie within a specified minimum and maximum range.'
4+
Subjects:
5+
- 'Code Foundations'
6+
- 'Computer Science'
7+
Tags:
8+
- 'Arithmetic'
9+
- 'Method'
10+
- 'Numbers'
11+
CatalogContent:
12+
- 'learn-c-sharp'
13+
- 'paths/computer-science'
14+
---
15+
16+
The **`Math.Clamp()`** is a static method that returns the value clamped to the inclusive range of min and max.
17+
18+
> **Note:** The static method `Math.Clamp()` was introduced in .NET Core 2.0.
19+
20+
## Syntax
21+
22+
```pseudo
23+
Math.Clamp(value, min, max);
24+
```
25+
26+
**Parameters:**
27+
28+
- `value`: The value to be clamped.
29+
- `min`: The lower bound of the result.
30+
- `max`: The upper bound of the result.
31+
32+
**Return value:**
33+
34+
Returns the value clamped to the inclusive range of min and max.
35+
36+
> **Note:** If value is less than `min`, it returns `min`; if greater than `max`, it returns `max`; otherwise, it returns `value`.
37+
38+
## Example
39+
40+
The following example demonstrates the `Math.Clamp()` method and writes the result to the console.
41+
42+
```cs
43+
using System;
44+
45+
class Program
46+
{
47+
static void Main()
48+
{
49+
int min = 2;
50+
int max = 8;
51+
52+
int result = Math.Clamp(10, min, max);
53+
Console.WriteLine(result);
54+
}
55+
}
56+
```
57+
58+
The example will result in the following output:
59+
60+
```shell
61+
8
62+
```
63+
64+
## Codebyte Example
65+
66+
In this example, a random list of decimal numbers is generated, and `Math.Clamp()` ensures that all stored values stay within the defined range:
67+
68+
```codebyte/csharp
69+
using System;
70+
71+
class Example
72+
{
73+
static void Main()
74+
{
75+
Random random = new Random();
76+
double[] nums = new double[10];
77+
int min = 1;
78+
int max = 50;
79+
80+
for (int i = 0; i < nums.Length; i++)
81+
{
82+
double range = random.NextDouble() * 70 - 10; // -10 to 60
83+
double limit = Math.Clamp(range, min, max);
84+
nums[i] = limit;
85+
}
86+
87+
foreach (double num in nums)
88+
{
89+
Console.WriteLine(num);
90+
}
91+
}
92+
}
93+
```

0 commit comments

Comments
 (0)