Local math class.

Dependents:   DISCO-F746NG_test001

Committer:
InoueTakashi
Date:
Fri Jun 24 01:20:32 2016 +0000
Revision:
0:d75b71489993
Local Math library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
InoueTakashi 0:d75b71489993 1 //
InoueTakashi 0:d75b71489993 2 // 2016/5/23, Copyright (c) 2016 Takashi Inoue
InoueTakashi 0:d75b71489993 3 // Button OverLapping Class Source File
InoueTakashi 0:d75b71489993 4 // ver 0.9 rev 0.1 2016/5/23
InoueTakashi 0:d75b71489993 5 //-----------------------------------------------------------
InoueTakashi 0:d75b71489993 6
InoueTakashi 0:d75b71489993 7
InoueTakashi 0:d75b71489993 8 #include "Rand.hpp"
InoueTakashi 0:d75b71489993 9
InoueTakashi 0:d75b71489993 10 namespace TakaIno
InoueTakashi 0:d75b71489993 11 {
InoueTakashi 0:d75b71489993 12 // Constructor
InoueTakashi 0:d75b71489993 13
InoueTakashi 0:d75b71489993 14 Rand::Rand() {;}
InoueTakashi 0:d75b71489993 15
InoueTakashi 0:d75b71489993 16 unsigned long Rand::GetRand(void) {
InoueTakashi 0:d75b71489993 17
InoueTakashi 0:d75b71489993 18 unsigned long t;
InoueTakashi 0:d75b71489993 19
InoueTakashi 0:d75b71489993 20 t=(x^(x<<11));
InoueTakashi 0:d75b71489993 21 x=y;
InoueTakashi 0:d75b71489993 22 y=z;
InoueTakashi 0:d75b71489993 23 z=w;
InoueTakashi 0:d75b71489993 24
InoueTakashi 0:d75b71489993 25 return( w=(w^(w>>19))^(t^(t>>8)) );
InoueTakashi 0:d75b71489993 26 }
InoueTakashi 0:d75b71489993 27
InoueTakashi 0:d75b71489993 28 unsigned long Rand::GetRand(unsigned long max) {
InoueTakashi 0:d75b71489993 29
InoueTakashi 0:d75b71489993 30 unsigned long t;
InoueTakashi 0:d75b71489993 31
InoueTakashi 0:d75b71489993 32 t=(x^(x<<11));
InoueTakashi 0:d75b71489993 33 x=y;
InoueTakashi 0:d75b71489993 34 y=z;
InoueTakashi 0:d75b71489993 35 z=w;
InoueTakashi 0:d75b71489993 36 w=(w^(w>>19))^(t^(t>>8));
InoueTakashi 0:d75b71489993 37
InoueTakashi 0:d75b71489993 38 return( w % max );
InoueTakashi 0:d75b71489993 39 }
InoueTakashi 0:d75b71489993 40
InoueTakashi 0:d75b71489993 41 unsigned long Rand::x=123456789;
InoueTakashi 0:d75b71489993 42 unsigned long Rand::y=362436069;
InoueTakashi 0:d75b71489993 43 unsigned long Rand::z=521288629;
InoueTakashi 0:d75b71489993 44 unsigned long Rand::w=88675123;
InoueTakashi 0:d75b71489993 45
InoueTakashi 0:d75b71489993 46
InoueTakashi 0:d75b71489993 47 }