summaryrefslogtreecommitdiff
path: root/External_Functions
diff options
context:
space:
mode:
Diffstat (limited to 'External_Functions')
-rw-r--r--External_Functions/gsl.mo497
1 files changed, 496 insertions, 1 deletions
diff --git a/External_Functions/gsl.mo b/External_Functions/gsl.mo
index 169fd75..4a7bef0 100644
--- a/External_Functions/gsl.mo
+++ b/External_Functions/gsl.mo
@@ -3543,6 +3543,348 @@ end gsl_sf_bessel_jl_e;
end chap_21_8;
end STATISTICS;
+package chap_21_9
+ function gsl_stats_median_from_sorted_data "given the sorted dataset ,stride and the length the function computes the median"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real median;
+
+ external "C" median = gsl_stats_median_from_sorted_data(sorted_data, stride, n) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_median_from_sorted_data;
+
+ function gsl_stats_median "This function computes the median given dataset,stride and length"
+ input Real data[:];
+ input Integer stride;
+ input Integer n;
+ output Real median;
+
+ external "C" median = gsl_stats_median(data, stride, n) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_median;
+
+ function gsl_stats_quantile_from_sorted_data "given the sorted dataset ,stride and the length and the function computes the quantile"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ input Real f "percentile/100";
+ output Real quantile;
+
+ external "C" quantile = gsl_stats_quantile_from_sorted_data(sorted_data, stride, n, f) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_quantile_from_sorted_data;
+ end chap_21_9;
+
+ package chap_21_10
+ function gsl_stats_select "This function returns the kth order statistics (kth smallest value) of a given dataset"
+ input Real data[:];
+ input Integer stride;
+ input Integer n;
+ input Integer k;
+ output Real d;
+
+ external "C" d = gsl_stats_select(data, stride, n, k) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_select;
+ end chap_21_10;
+
+ package chap_21_11 "Robust location estimates "
+ function gsl_stats_trmean_from_sorted_data "This function returns the trimmed mean given sorted data set, trimming factor, stride and length"
+ input Real alpha;
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real trmean;
+
+ external "C" trmean = gsl_stats_trmean_from_sorted_data(alpha, sorted_data, stride, n) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_trmean_from_sorted_data;
+
+ function gsl_stats_gastwirth_from_sorted_data "gastwirth=(0.3*Q1/2)+(0.4*Q1/2)+(0.3*Q2/3) where Q1/3 is one third quantile,Q1/2 is half quantile and Q2/3 is two third quantile"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real gastwirth;
+
+ external "C" gastwirth = gsl_stats_gastwirth_from_sorted_data(sorted_data, stride, n) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_gastwirth_from_sorted_data;
+ end chap_21_11;
+
+ package chap_21_12_1
+ function gsl_stats_mad0 "The function calculates median absolute deviation(MAD),where MAD0=median{|xi- median(x)|} given dataset ,stride,length and a workspace of size n"
+ input Real data[:];
+ input Integer stride;
+ input Integer n;
+ output Real work[n];
+ output Real mad0;
+
+ external "C" mad0 = gsl_stats_mad0(data, stride, n, work) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_mad0;
+
+ function gsl_stats_mad "The function calculates median absolute deviation(MAD),where MAD=1.4826*median{|xi- median(x)|} given dataset ,stride,length and a workspace of size n"
+ input Real data[:];
+ input Integer stride;
+ input Integer n;
+ output Real work[n];
+ output Real mad;
+
+ external "C" mad = gsl_stats_mad(data, stride, n, work) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_mad;
+ end chap_21_12_1;
+
+ package chap_21_12_2 "Sn Statistic"
+ function gsl_stats_Sn0_from_sorted_data "This function returns the statistics given sorted data set, workspace of length n , stride and length.where S n = c n × median i {median j (|x i − x j |)}"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real work[n];
+ output Real Sn0;
+
+ external "C" Sn0 = gsl_stats_Sn0_from_sorted_data(sorted_data, stride, n, work) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_Sn0_from_sorted_data;
+
+ function gsl_stats_Sn_from_sorted_data "This function returns the statistics given sorted data set, workspace of length n , stride and length.where S n =1.1926× cn × median i {median j (|x i − x j |)}"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real work[n];
+ output Real Sn;
+
+ external "C" Sn = gsl_stats_Sn_from_sorted_data(sorted_data, stride, n, work) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_Sn_from_sorted_data;
+ end chap_21_12_2;
+
+ package chap_21_12_3
+ function gsl_stats_Qn0_from_sorted_data "This function returns the statistics given sorted data set, workspace of length n , stride and length.where Q n 0= d n × {|x i − x j | , i < j} (k)"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real work[3 * n];
+ output Integer work_int[5 * n];
+ output Real Qn0;
+
+ external "C" Qn0 = gsl_stats_Qn0_from_sorted_data(sorted_data, stride, n, work, work_int) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_Qn0_from_sorted_data;
+
+ function gsl_stats_Qn_from_sorted_data "This function returns the statistics given sorted data set, workspace of length n , stride and length.where Q n = 2.21914 × d n × {|x i − x j | , i < j} (k)"
+ input Real sorted_data[:];
+ input Integer stride;
+ input Integer n;
+ output Real work[3 * n];
+ output Integer work_int[5 * n];
+ output Real Qn;
+
+ external "C" Qn = gsl_stats_Qn_from_sorted_data(sorted_data, stride, n, work, work_int) annotation(
+ Include = "#include<gsl/gsl_statistics_double.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_stats_Qn_from_sorted_data;
+ end chap_21_12_3;
+ end STATISTICS;
+
+ package RUNNING_STATISTICS
+ package chap_22_2
+ function gsl_rstat_reset "resets the accumulator so that it can be used for other data"
+ input gsl.data_types.gsl_rstat_workspace p;
+ output Integer n;
+
+ external "C" n = gsl_rstat_reset(p) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_reset;
+
+ function gsl_rstat_add "adds data to the accumulator"
+ input Real x;
+ input gsl.data_types.gsl_rstat_workspace S;
+ output Integer i;
+
+ external "C" i = gsl_rstat_add(x, S) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_add;
+
+ function gsl_rstat_n "returns the number of data accumulated in the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Integer n;
+
+ external "C" n = gsl_rstat_n(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_n;
+ end chap_22_2;
+
+ package chap_22_3
+ function gsl_rstat_min "returns the minimum value added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_min(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_min;
+
+ function gsl_rstat_max "returns the minimum value added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_max(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_max;
+
+ function gsl_rstat_mean "returns the maximum value added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_mean(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_mean;
+
+ function gsl_rstat_variance "returns the variance of the accumulator data"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_variance(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_variance;
+
+ function gsl_rstat_sd "returns the standard deviation of accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_sd(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_sd;
+
+ function gsl_rstat_sd_mean "This function returns the standard deviation of the mean,"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_sd_mean(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_sd_mean;
+
+ function gsl_rstat_rms "This function returns the root mean square of all data added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_rms(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_rms;
+
+ function gsl_rstat_skew "This function returns the skewness of all data added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_skew(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_skew;
+
+ function gsl_rstat_kurtosis "This function returns the kurtosis of all data added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_kurtosis(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_kurtosis;
+
+ function gsl_rstat_median "This function returns an estimate of the median of the data added to the accumulator"
+ input gsl.data_types.gsl_rstat_workspace w;
+ output Real n;
+
+ external "C" n = gsl_rstat_median(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_median;
+ end chap_22_3;
+
+ package chap_22_4
+ function gsl_rstat_quantile_reset "resets the accumulator so that it can be used for other data"
+ input gsl.data_types.gsl_rstat_quantile_workspace w;
+ output Integer n;
+
+ external "C" n = gsl_rstat_quantile_reset(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_quantile_reset;
+
+ function gsl_rstat_quantile_add "adds data to the accumulator"
+ input Real x;
+ input gsl.data_types.gsl_rstat_quantile_workspace S;
+ output Integer i;
+
+ external "C" i = gsl_rstat_quantile_add(x, S) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_quantile_add;
+
+ function gsl_rstat_quantile_get "returns the number of data accumulated in the accumulator"
+ input gsl.data_types.gsl_rstat_quantile_workspace w;
+ output Integer n;
+
+ external "C" n = gsl_rstat_quantile_get(w) annotation(
+ Include = "#include<gsl/gsl_rstat.h>",
+ Library = "gsl",
+ Library = "gslcblas");
+ end gsl_rstat_quantile_get;
+ end chap_22_4;
+ end RUNNING_STATISTICS;
+
+ package MOVING_WINDOW_STATISTICS
+ end MOVING_WINDOW_STATISTICS;
+
+
package Examples
package Mathematical
@@ -6125,5 +6467,158 @@ end gsl_sf_bessel_jl_e;
end statistics;
+package chap_21_9 "Median and Percentiles"
+ model gsl_stats_median_from_sorted_data "This model calls the function 'gsl_stats_median_from_sorted_data' to calculate the median . The given dataset should be in asending order"
+ parameter Real sorted_data[:] = {1, 2, 4, 5, 7, 9};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real median;
+ algorithm
+ median := gsl.STATISTICS.chap_21_9.gsl_stats_median_from_sorted_data(sorted_data, stride, n);
+ end gsl_stats_median_from_sorted_data;
+
+ model gsl_stats_median "This model calls the function 'gsl_stats_median' to calculate the median"
+ parameter Real data[:] = {1, 2, 4, 5, 7, 9};
+ parameter Integer stride = 1;
+ parameter Integer n = size(data, 1);
+ Real median;
+ algorithm
+ median := gsl.STATISTICS.chap_21_9.gsl_stats_median(data, stride, n);
+ end gsl_stats_median;
+
+ model gsl_stats_quantile_from_sorted_data "This model calls the function 'gsl_stats_quantile_from_sorted_data' to calculate the quantile . The given dataset should be in asending order"
+ parameter Real sorted_data[:] = {1, 2, 4, 5, 7, 9};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ parameter Real f = 0.75 "percentile/100";
+ Real quantile;
+ algorithm
+ quantile := gsl.STATISTICS.chap_21_9.gsl_stats_quantile_from_sorted_data(sorted_data, stride, n, f);
+ end gsl_stats_quantile_from_sorted_data;
+ end chap_21_9;
+
+ package chap_21_10
+ model gsl_stats_select "This model calls the function gsl_stats_select to give the kth smallest value of the given dataset"
+ Real data[:] = {4, 2, 3, 1, 1000, 10, 9};
+ parameter Integer stride = 1;
+ parameter Integer n = size(data, 1);
+ parameter Integer k = 5;
+ Real d;
+ algorithm
+ d := gsl.STATISTICS.chap_21_10.gsl_stats_select(data, stride, n, k - 1);
+ end gsl_stats_select;
+ end chap_21_10;
+
+ package chap_21_11
+ model gsl_stats_trmean_from_sorted_data "This model calls the function 'gsl_stats_trmean_from_sorted_data' to give the trimmed mean given sorted dataset trimming factor 'alpha',stride,length"
+ parameter Real alpha = 0.25;
+ parameter Real sorted_data[:] = {1, 2, 3, 4, 5, 6, 7, 8};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real trmean;
+ algorithm
+ trmean := gsl.STATISTICS.chap_21_11.gsl_stats_trmean_from_sorted_data(alpha, sorted_data, stride, n);
+ end gsl_stats_trmean_from_sorted_data;
+
+ model gsl_stats_gastwirth_from_sorted_data "This model calls the function 'gsl_stats_gastwirth_from_sorted_data' to give gastwirth location estimator given sorted data,stride ,length"
+ parameter Real sorted_data[:] = {1000, 2, 3, 1000, 5, 1000, 7, 1000};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real gastwirth;
+ algorithm
+ gastwirth := gsl.STATISTICS.chap_21_11.gsl_stats_gastwirth_from_sorted_data(sorted_data, stride, n);
+ end gsl_stats_gastwirth_from_sorted_data;
+ end chap_21_11;
+
+ package chap_21_12_1
+ model gsl_stats_mad0 "This model calls the function gsl_stats_mad0 to calculate median absolute deviation(MAD) without the correction factor "
+ parameter Real data[:] = {1, 34, 6, 5, 9};
+ parameter Integer stride = 1;
+ parameter Integer n = size(data, 1);
+ Real work[size(data, 1)];
+ Real mad0;
+ algorithm
+ (work, mad0) := gsl.STATISTICS.chap_21_12_1.gsl_stats_mad0(data, stride, n);
+ end gsl_stats_mad0;
+
+ model gsl_stats_mad "This model calls the function gsl_stats_mad to calculate median absolute deviation(MAD) "
+ parameter Real data[:] = {1, 34, 6, 5, 9};
+ parameter Integer stride = 1;
+ parameter Integer n = size(data, 1);
+ Real work[size(data, 1)];
+ Real mad;
+ algorithm
+ (work, mad) := gsl.STATISTICS.chap_21_12_1.gsl_stats_mad(data, stride, n);
+ end gsl_stats_mad;
+ end chap_21_12_1;
+
+ package chap_21_12_2 "Sn Statistic"
+ model gsl_stats_Sn0_from_sorted_data "This model calls the function 'gsl_stats_Sn0_from_sorted_data' to give the Statistics given sorted dataset , workspace of length n,stride,length"
+ parameter Real sorted_data[:] = {1, 2, 3, 4, 5, 6, 7, 8};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real work[size(sorted_data, 1)];
+ Real Sn0;
+ algorithm
+ (work, Sn0) := gsl.STATISTICS.chap_21_12_2.gsl_stats_Sn0_from_sorted_data(sorted_data, stride, n);
+ end gsl_stats_Sn0_from_sorted_data;
+
+ model gsl_stats_Sn_from_sorted_data "This model calls the function 'gsl_stats_Sn_from_sorted_data' to give the Statistics given sorted dataset , workspace of length n,stride,length"
+ parameter Real sorted_data[:] = {1, 2, 3, 4, 5, 6, 7, 8};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real work[size(sorted_data, 1)];
+ Real Sn;
+ algorithm
+ (work, Sn) := gsl.STATISTICS.chap_21_12_2.gsl_stats_Sn_from_sorted_data(sorted_data, stride, n);
+ end gsl_stats_Sn_from_sorted_data;
+ end chap_21_12_2;
+
+ package chap_21_12_3
+ model gsl_stats_Qn0_from_sorted_data "This model calls the function 'gsl_stats_Qn0_from_sorted_data' to give the Statistics given sorted dataset , workspace of length n,stride,length"
+ parameter Real sorted_data[:] = {1, 2, 3, 4, 5, 6, 7, 8};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real work[3 * size(sorted_data, 1)];
+ Integer work_int[size(sorted_data, 1) * 5];
+ Real Qn0;
+ algorithm
+ (work, work_int, Qn0) := gsl.STATISTICS.chap_21_12_3.gsl_stats_Qn0_from_sorted_data(sorted_data, stride, n);
+ end gsl_stats_Qn0_from_sorted_data;
+
+ model gsl_stats_Qn_from_sorted_data "This model calls the function 'gsl_stats_Qn_from_sorted_data' to give the Statistics given sorted dataset , workspace of length n,stride,length,workspace for integer "
+ parameter Real sorted_data[:] = {1, 2, 3, 4, 5, 6, 7, 8};
+ parameter Integer stride = 1;
+ parameter Integer n = size(sorted_data, 1);
+ Real work[3 * size(sorted_data, 1)];
+ Integer work_int[5 * size(sorted_data, 1)];
+ Real Qn;
+ algorithm
+ (work, work_int, Qn) := gsl.STATISTICS.chap_21_12_3.gsl_stats_Qn_from_sorted_data(sorted_data, stride, n);
+ end gsl_stats_Qn_from_sorted_data;
+ end chap_21_12_3;
+ end statistics;
+
+ package running_statistics
+ model test
+ gsl.data_types.gsl_rstat_workspace rstat_p = gsl.data_types.gsl_rstat_workspace();
+ parameter Real data[:] = {17.2, 18.1};
+ Real mean;
+ //, 16.5, 18.3, 12.6};
+ /* Real mean, variance, largest, smallest, sd, rms, sd_mean, median, skew, kurtosis;*/
+ //Real i;
+ Real j[2];
+ algorithm
+/* add data to rstat accumulator */
+//for i in 1:2 loop
+ j[1] := gsl.RUNNING_STATISTICS.chap_22_2.gsl_rstat_add(data[1], rstat_p);
+ j[2] := gsl.RUNNING_STATISTICS.chap_22_2.gsl_rstat_add(data[2], rstat_p);
+//end for;
+ mean := gsl.RUNNING_STATISTICS.chap_22_3.gsl_rstat_mean(rstat_p);
+//end for;
+// i := 5;
+ end test;
+ end running_statistics;
+
end Examples;
-end gsl; \ No newline at end of file
+end gsl;