acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
_random.h
1//
2// _random.h
3// acme
4//
5// Created by Camilo Sasuke Thomas Borregaard Soerensen on 2023-06-05 00:42
6// Copyright (c) 2023 Camilo Sasuke Tsumanuma. All rights reserved.
7//
8#pragma once
9
10
11#include "quadruple.h"
12#include "acme/prototype/mathematics/mathematics.h"
13
14
15template < prototype_number NUMBER >
16inline quadruple_type < NUMBER > random(::mathematics::mathematics * pmathematics, const quadruple_type < NUMBER > & quadruple1, const quadruple_type < NUMBER > & quadruple2)
17{
18
19 return quadruple_type < NUMBER >(
20 pmathematics->random(quadruple1.x, quadruple2.x),
21 pmathematics->random(quadruple1.y, quadruple2.y),
22 pmathematics->random(quadruple1.z, quadruple2.z),
23 pmathematics->random(quadruple1.w, quadruple2.w)
24 );
25
26}
27
28
29template < prototype_number NUMBER >
30inline quadruple_type < NUMBER > homogeneous_minimum_maximum_rand(const quadruple_type < NUMBER > & quadruple1, const quadruple_type < NUMBER > & quadruple2)
31{
32
33 auto iRand = ::rand();
34
35 return quadruple_type < NUMBER >(
36 linear_rate(quadruple1.x, quadruple2.x, iRand, RAND_MAX),
37 linear_rate(quadruple1.y, quadruple2.y, iRand, RAND_MAX),
38 linear_rate(quadruple1.c(), quadruple2.c(), iRand, RAND_MAX),
39 linear_rate(quadruple1.d(), quadruple2.d(), iRand, RAND_MAX));
40
41}
42
43
44
Definition mathematics.h:29