Local math class.
Dependents: DISCO-F746NG_test001
Rand.cpp@0:d75b71489993, 2016-06-24 (annotated)
- Committer:
- InoueTakashi
- Date:
- Fri Jun 24 01:20:32 2016 +0000
- Revision:
- 0:d75b71489993
Local Math library
Who changed what in which revision?
User | Revision | Line number | New 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 | } |