Random distribution sampling is a function that generates random numbers according to a specified distribution. It can be used to generate numbers from various univariate distributions as well as multivariate distributions. The probability density functions for different distributions are provided in the content.
------

SET SCHEMA DM_PAL;

DROP TABLE PAL_SAMPLING_DISTRIBUTION_PARAMETER_TBL;
CREATE COLUMN TABLE PAL_SAMPLING_DISTRIBUTION_PARAMETER_TBL ("NAME" VARCHAR(100), "VALUE" VARCHAR(100));
INSERT INTO PAL_SAMPLING_DISTRIBUTION_PARAMETER_TBL VALUES ('DISTRIBUTIONNAME', 'UNIFORM');
INSERT INTO PAL_SAMPLING_DISTRIBUTION_PARAMETER_TBL VALUES ('MIN', '2');
INSERT INTO PAL_SAMPLING_DISTRIBUTION_PARAMETER_TBL VALUES ('MAX', '2.1');

DROP TABLE #PAL_PARAMETER_TBL;
CREATE LOCAL TEMPORARY COLUMN TABLE #PAL_PARAMETER_TBL ("PARAM_NAME" VARCHAR(256), "INT_VALUE" INTEGER, "DOUBLE_VALUE" DOUBLE, "STRING_VALUE" VARCHAR(1000));
INSERT INTO #PAL_PARAMETER_TBL VALUES ('NUM_RANDOM', 10000, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('SEED', 1, NULL, NULL);
INSERT INTO #PAL_PARAMETER_TBL VALUES ('THREAD_RATIO', NULL, 0, NULL);

CALL _SYS_AFL.PAL_DISTRIBUTION_RANDOM (PAL_SAMPLING_DISTRIBUTION_PARAMETER_TBL, #PAL_PARAMETER_TBL, ?);

