Vim documentation: vital/Random/Xor128

main help file
vital/Random/Xor128.txt       random number generator using xor128

Maintainer: Linda_pp  <lin90162@gmail.com>

==============================================================================
CONTENTS                                        Vital.Random.Xor128-contents

INTRODUCTION                    Vital.Random.Xor128-introduction
INTERFACE                       Vital.Random.Xor128-interface
  FUNCTIONS                     Vital.Random.Xor128-functions



==============================================================================
INTRODUCTION                            Vital.Random.Xor128-introduction

Vital.Random.Xor128 provides a Random Number Generator (RNG) using an
xorshift algorithm.  Although xorshift has a reasonable period (2^128-1), it
is fast and has less internal states.
The paper about xorshift is http://www.jstatsoft.org/v08/i14/paper .
This implementation always generates 32bit number [-2147483648, 2147483647],
even when you use Vim with +num64.


        let s:V = vital#{plugin-name}#new()
        let s:X = s:V.import("Random.Xor128")

        call s:X.srand(1)
        echo s:X.rand()
        " -232950721
        echo s:X.rand()
        " 739248423
        call s:X.srand(1)
        echo s:X.rand()
        " -232950721



==============================================================================
INTERFACE                               Vital.Random.Xor128-interface

------------------------------------------------------------------------------
FUNCTIONS                               Vital.Random.Xor128-functions

srand([{seed}])                         Vital.Random.Xor128.srand()
        Initialize the global generator with the given seed number. When
        {seed} is omitted, a return value of reltime() is used.  When {seed}
        is omitted and vim doesn't have reltime(), a return value of
        localtime() is used.

rand()                                  Vital.Random.Xor128.rand()
        Generate a random number from the global generator.
        Note: A return value is possibly negative.  This is because Vim script
        doesn't have an unsigned integer type.

new_generator()                         Vital.Random.Xor128.new_generator()
        Create a new Generator object(Vital.Random.Xor128-Generator).



==============================================================================
OBJECTS                                 Vital.Random.Xor128-objects

------------------------------------------------------------------------------
Generator Object                Vital.Random.Xor128-Generator

Generator.next()                Vital.Random.Xor128-Generator.next()
        Generate the next random number in the sequence.

Generator.min()                 Vital.Random.Xor128-Generator.min()
        Get the smallest possible value in the output range.

Generator.max()                 Vital.Random.Xor128-Generator.max()
        Get the largest possible value in the output range.

Generator.seed({seeds})         Vital.Random.Xor128-Generator.seed()
        Initialize the generator with the given seed list.


==============================================================================
vim:tw=78:fo=tcq2mM:ts=8:ft=help:norl

top - main help file - tag index