github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/RAND.go (about)

     1  //This file is part of EESLISM.
     2  //
     3  //Foobar is free software : you can redistribute itand /or modify
     4  //it under the terms of the GNU General Public License as published by
     5  //the Free Software Foundation, either version 3 of the License, or
     6  //(at your option) any later version.
     7  //
     8  //Foobar is distributed in the hope that it will be useful,
     9  //but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
    11  //GNU General Public License for more details.
    12  //
    13  //You should have received a copy of the GNU General Public License
    14  //along with Foobar.If not, see < https://www.gnu.org/licenses/>.
    15  
    16  /*
    17  
    18     乱数の発生
    19        FILE=RAND.c
    20        Create Date=1999.6.7
    21  
    22  */
    23  
    24  package eeslism
    25  
    26  import (
    27  	"math"
    28  	"math/rand"
    29  )
    30  
    31  func RAND(a, v *float64) {
    32  	const RAND_MAX = 2147483647
    33  	*a = 2.0 * math.Pi * (float64(rand.Intn(RAND_MAX)) / float64(RAND_MAX))
    34  	*v = math.Acos(math.Sqrt(1.0 - (float64(rand.Intn(RAND_MAX)) / float64(RAND_MAX))))
    35  }