From 3080e05e64292a934f9ce32e908c1c8a88dc40ec Mon Sep 17 00:00:00 2001 From: Justin Bedo Date: Thu, 20 Jun 2024 17:09:59 +1000 Subject: add stopping criteria --- pca.c | 27374 ++++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 16127 insertions(+), 11247 deletions(-) (limited to 'pca.c') diff --git a/pca.c b/pca.c index f0d92ab..37f03d9 100644 --- a/pca.c +++ b/pca.c @@ -5124,11 +5124,11 @@ struct memblock { struct constants { int dummy; }; -static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_19919[100151]; -static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_19934[100151]; -static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_19935[100151]; -static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_20038[100151]; -static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_20067[100151]; +static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_22834[100151]; +static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_22849[100151]; +static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_22850[100151]; +static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_22953[100151]; +static int32_t pcaWithQuantileziwithacc_locks_mem_realtype_22982[100151]; struct tuning_params { int dummy; }; @@ -6419,122 +6419,152 @@ static int mc_event_report(struct str_builder* sb, struct mc_event* e) { // End of backends/multicore.h struct program { - int64_t futhark_mc_segmap_task_19773_total_time; - int64_t futhark_mc_segmap_task_19773_total_iter; - int64_t futhark_mc_segmap_task_19783_total_time; - int64_t futhark_mc_segmap_task_19783_total_iter; - int64_t futhark_mc_segmap_task_19793_total_time; - int64_t futhark_mc_segmap_task_19793_total_iter; - int64_t futhark_mc_segmap_task_19800_total_time; - int64_t futhark_mc_segmap_task_19800_total_iter; - int64_t futhark_mc_segred_task_19810_total_time; - int64_t futhark_mc_segred_task_19810_total_iter; - int64_t futhark_mc_segmap_task_19818_total_time; - int64_t futhark_mc_segmap_task_19818_total_iter; - int64_t futhark_mc_segmap_task_19828_total_time; - int64_t futhark_mc_segmap_task_19828_total_iter; - int64_t futhark_mc_segmap_task_19838_total_time; - int64_t futhark_mc_segmap_task_19838_total_iter; - int64_t futhark_mc_segmap_task_19848_total_time; - int64_t futhark_mc_segmap_task_19848_total_iter; - int64_t futhark_mc_segmap_task_19855_total_time; - int64_t futhark_mc_segmap_task_19855_total_iter; - int64_t futhark_mc_copy_18224_task_19862_total_time; - int64_t futhark_mc_copy_18224_task_19862_total_iter; - int64_t futhark_mc_copy_18235_task_19872_total_time; - int64_t futhark_mc_copy_18235_task_19872_total_iter; - int64_t futhark_mc_copy_18245_task_19879_total_time; - int64_t futhark_mc_copy_18245_task_19879_total_iter; - int64_t futhark_mc_segmap_task_19886_total_time; - int64_t futhark_mc_segmap_task_19886_total_iter; - int64_t futhark_mc_segmap_task_19896_total_time; - int64_t futhark_mc_segmap_task_19896_total_iter; - int64_t futhark_mc_copy_18300_task_19906_total_time; - int64_t futhark_mc_copy_18300_task_19906_total_iter; - int64_t futhark_mc_copy_18310_task_19913_total_time; - int64_t futhark_mc_copy_18310_task_19913_total_iter; - int64_t futhark_mc_segmap_task_19921_total_time; - int64_t futhark_mc_segmap_task_19921_total_iter; - int64_t futhark_mc_segmap_task_19953_total_time; - int64_t futhark_mc_segmap_task_19953_total_iter; - int64_t futhark_mc_segred_task_19963_total_time; - int64_t futhark_mc_segred_task_19963_total_iter; - int64_t futhark_mc_segmap_task_19974_total_time; - int64_t futhark_mc_segmap_task_19974_total_iter; - int64_t futhark_mc_segred_task_19984_total_time; - int64_t futhark_mc_segred_task_19984_total_iter; - int64_t futhark_mc_segred_task_19995_total_time; - int64_t futhark_mc_segred_task_19995_total_iter; - int64_t futhark_mc_segred_task_20004_total_time; - int64_t futhark_mc_segred_task_20004_total_iter; - int64_t futhark_mc_segred_task_20013_total_time; - int64_t futhark_mc_segred_task_20013_total_iter; - int64_t futhark_mc_copy_19042_task_20025_total_time; - int64_t futhark_mc_copy_19042_task_20025_total_iter; - int64_t futhark_mc_segmap_task_20032_total_time; - int64_t futhark_mc_segmap_task_20032_total_iter; - int64_t futhark_mc_segmap_task_20040_total_time; - int64_t futhark_mc_segmap_task_20040_total_iter; - int64_t futhark_mc_segred_task_20050_total_time; - int64_t futhark_mc_segred_task_20050_total_iter; - int64_t futhark_mc_segmap_task_20058_total_time; - int64_t futhark_mc_segmap_task_20058_total_iter; - int64_t futhark_mc_segmap_task_20069_total_time; - int64_t futhark_mc_segmap_task_20069_total_iter; - int64_t futhark_mc_segmap_task_20079_total_time; - int64_t futhark_mc_segmap_task_20079_total_iter; - int64_t futhark_mc_copy_19199_task_20089_total_time; - int64_t futhark_mc_copy_19199_task_20089_total_iter; - int64_t futhark_mc_copy_19212_task_20099_total_time; - int64_t futhark_mc_copy_19212_task_20099_total_iter; - int64_t futhark_mc_copy_19222_task_20106_total_time; - int64_t futhark_mc_copy_19222_task_20106_total_iter; - int64_t futhark_mc_segmap_task_20113_total_time; - int64_t futhark_mc_segmap_task_20113_total_iter; - int64_t futhark_mc_copy_19251_task_20120_total_time; - int64_t futhark_mc_copy_19251_task_20120_total_iter; - int64_t futhark_mc_copy_19261_task_20127_total_time; - int64_t futhark_mc_copy_19261_task_20127_total_iter; - int64_t futhark_mc_copy_19274_task_20134_total_time; - int64_t futhark_mc_copy_19274_task_20134_total_iter; - int64_t futhark_mc_segred_task_20141_total_time; - int64_t futhark_mc_segred_task_20141_total_iter; - int64_t futhark_mc_segmap_task_20159_total_time; - int64_t futhark_mc_segmap_task_20159_total_iter; - int64_t futhark_mc_segred_task_20169_total_time; - int64_t futhark_mc_segred_task_20169_total_iter; - int64_t futhark_mc_segmap_task_20180_total_time; - int64_t futhark_mc_segmap_task_20180_total_iter; - int64_t futhark_mc_segred_task_20190_total_time; - int64_t futhark_mc_segred_task_20190_total_iter; - int64_t futhark_mc_segred_task_20201_total_time; - int64_t futhark_mc_segred_task_20201_total_iter; - int64_t futhark_mc_segred_task_20210_total_time; - int64_t futhark_mc_segred_task_20210_total_iter; - int64_t futhark_mc_copy_19482_task_20222_total_time; - int64_t futhark_mc_copy_19482_task_20222_total_iter; - int64_t futhark_mc_copy_19492_task_20229_total_time; - int64_t futhark_mc_copy_19492_task_20229_total_iter; - int64_t futhark_mc_copy_19505_task_20236_total_time; - int64_t futhark_mc_copy_19505_task_20236_total_iter; - int64_t futhark_mc_segmap_task_20243_total_time; - int64_t futhark_mc_segmap_task_20243_total_iter; - int64_t futhark_mc_segmap_task_20255_total_time; - int64_t futhark_mc_segmap_task_20255_total_iter; - int64_t futhark_mc_segred_task_20265_total_time; - int64_t futhark_mc_segred_task_20265_total_iter; - int64_t futhark_mc_segmap_task_20276_total_time; - int64_t futhark_mc_segmap_task_20276_total_iter; - int64_t futhark_mc_segred_task_20286_total_time; - int64_t futhark_mc_segred_task_20286_total_iter; - int64_t futhark_mc_copy_19703_task_20300_total_time; - int64_t futhark_mc_copy_19703_task_20300_total_iter; - int64_t futhark_mc_segmap_task_20307_total_time; - int64_t futhark_mc_segmap_task_20307_total_iter; - int64_t futhark_mc_segmap_task_20317_total_time; - int64_t futhark_mc_segmap_task_20317_total_iter; - int64_t futhark_mc_copy_19747_task_20327_total_time; - int64_t futhark_mc_copy_19747_task_20327_total_iter; + int64_t futhark_mc_segmap_task_22627_total_time; + int64_t futhark_mc_segmap_task_22627_total_iter; + int64_t futhark_mc_segmap_task_22637_total_time; + int64_t futhark_mc_segmap_task_22637_total_iter; + int64_t futhark_mc_segmap_task_22647_total_time; + int64_t futhark_mc_segmap_task_22647_total_iter; + int64_t futhark_mc_segmap_task_22654_total_time; + int64_t futhark_mc_segmap_task_22654_total_iter; + int64_t futhark_mc_segred_task_22664_total_time; + int64_t futhark_mc_segred_task_22664_total_iter; + int64_t futhark_mc_segred_task_22672_total_time; + int64_t futhark_mc_segred_task_22672_total_iter; + int64_t futhark_mc_segmap_task_22690_total_time; + int64_t futhark_mc_segmap_task_22690_total_iter; + int64_t futhark_mc_segred_task_22700_total_time; + int64_t futhark_mc_segred_task_22700_total_iter; + int64_t futhark_mc_segred_task_22711_total_time; + int64_t futhark_mc_segred_task_22711_total_iter; + int64_t futhark_mc_segred_task_22720_total_time; + int64_t futhark_mc_segred_task_22720_total_iter; + int64_t futhark_mc_copy_20756_task_22729_total_time; + int64_t futhark_mc_copy_20756_task_22729_total_iter; + int64_t futhark_mc_segmap_task_22739_total_time; + int64_t futhark_mc_segmap_task_22739_total_iter; + int64_t futhark_mc_segmap_task_22749_total_time; + int64_t futhark_mc_segmap_task_22749_total_iter; + int64_t futhark_mc_segmap_task_22756_total_time; + int64_t futhark_mc_segmap_task_22756_total_iter; + int64_t futhark_mc_copy_20833_task_22763_total_time; + int64_t futhark_mc_copy_20833_task_22763_total_iter; + int64_t futhark_mc_copy_20845_task_22773_total_time; + int64_t futhark_mc_copy_20845_task_22773_total_iter; + int64_t futhark_mc_copy_20855_task_22780_total_time; + int64_t futhark_mc_copy_20855_task_22780_total_iter; + int64_t futhark_mc_segmap_task_22787_total_time; + int64_t futhark_mc_segmap_task_22787_total_iter; + int64_t futhark_mc_segmap_task_22797_total_time; + int64_t futhark_mc_segmap_task_22797_total_iter; + int64_t futhark_mc_copy_20900_task_22804_total_time; + int64_t futhark_mc_copy_20900_task_22804_total_iter; + int64_t futhark_mc_copy_20913_task_22814_total_time; + int64_t futhark_mc_copy_20913_task_22814_total_iter; + int64_t futhark_mc_copy_20933_task_22821_total_time; + int64_t futhark_mc_copy_20933_task_22821_total_iter; + int64_t futhark_mc_copy_20943_task_22828_total_time; + int64_t futhark_mc_copy_20943_task_22828_total_iter; + int64_t futhark_mc_segmap_task_22836_total_time; + int64_t futhark_mc_segmap_task_22836_total_iter; + int64_t futhark_mc_segmap_task_22868_total_time; + int64_t futhark_mc_segmap_task_22868_total_iter; + int64_t futhark_mc_segred_task_22878_total_time; + int64_t futhark_mc_segred_task_22878_total_iter; + int64_t futhark_mc_segmap_task_22889_total_time; + int64_t futhark_mc_segmap_task_22889_total_iter; + int64_t futhark_mc_segred_task_22899_total_time; + int64_t futhark_mc_segred_task_22899_total_iter; + int64_t futhark_mc_segred_task_22910_total_time; + int64_t futhark_mc_segred_task_22910_total_iter; + int64_t futhark_mc_segred_task_22919_total_time; + int64_t futhark_mc_segred_task_22919_total_iter; + int64_t futhark_mc_segred_task_22928_total_time; + int64_t futhark_mc_segred_task_22928_total_iter; + int64_t futhark_mc_copy_21675_task_22940_total_time; + int64_t futhark_mc_copy_21675_task_22940_total_iter; + int64_t futhark_mc_segmap_task_22947_total_time; + int64_t futhark_mc_segmap_task_22947_total_iter; + int64_t futhark_mc_segmap_task_22955_total_time; + int64_t futhark_mc_segmap_task_22955_total_iter; + int64_t futhark_mc_segred_task_22965_total_time; + int64_t futhark_mc_segred_task_22965_total_iter; + int64_t futhark_mc_segmap_task_22973_total_time; + int64_t futhark_mc_segmap_task_22973_total_iter; + int64_t futhark_mc_segmap_task_22984_total_time; + int64_t futhark_mc_segmap_task_22984_total_iter; + int64_t futhark_mc_segmap_task_22994_total_time; + int64_t futhark_mc_segmap_task_22994_total_iter; + int64_t futhark_mc_copy_21832_task_23004_total_time; + int64_t futhark_mc_copy_21832_task_23004_total_iter; + int64_t futhark_mc_copy_21845_task_23014_total_time; + int64_t futhark_mc_copy_21845_task_23014_total_iter; + int64_t futhark_mc_copy_21855_task_23021_total_time; + int64_t futhark_mc_copy_21855_task_23021_total_iter; + int64_t futhark_mc_segmap_task_23028_total_time; + int64_t futhark_mc_segmap_task_23028_total_iter; + int64_t futhark_mc_copy_21884_task_23035_total_time; + int64_t futhark_mc_copy_21884_task_23035_total_iter; + int64_t futhark_mc_copy_21894_task_23042_total_time; + int64_t futhark_mc_copy_21894_task_23042_total_iter; + int64_t futhark_mc_segred_task_23049_total_time; + int64_t futhark_mc_segred_task_23049_total_iter; + int64_t futhark_mc_segmap_task_23067_total_time; + int64_t futhark_mc_segmap_task_23067_total_iter; + int64_t futhark_mc_segred_task_23077_total_time; + int64_t futhark_mc_segred_task_23077_total_iter; + int64_t futhark_mc_segmap_task_23088_total_time; + int64_t futhark_mc_segmap_task_23088_total_iter; + int64_t futhark_mc_segred_task_23098_total_time; + int64_t futhark_mc_segred_task_23098_total_iter; + int64_t futhark_mc_segred_task_23109_total_time; + int64_t futhark_mc_segred_task_23109_total_iter; + int64_t futhark_mc_segred_task_23118_total_time; + int64_t futhark_mc_segred_task_23118_total_iter; + int64_t futhark_mc_copy_22102_task_23130_total_time; + int64_t futhark_mc_copy_22102_task_23130_total_iter; + int64_t futhark_mc_copy_22112_task_23137_total_time; + int64_t futhark_mc_copy_22112_task_23137_total_iter; + int64_t futhark_mc_copy_22125_task_23144_total_time; + int64_t futhark_mc_copy_22125_task_23144_total_iter; + int64_t futhark_mc_segred_task_23151_total_time; + int64_t futhark_mc_segred_task_23151_total_iter; + int64_t futhark_mc_segmap_task_23169_total_time; + int64_t futhark_mc_segmap_task_23169_total_iter; + int64_t futhark_mc_segred_task_23179_total_time; + int64_t futhark_mc_segred_task_23179_total_iter; + int64_t futhark_mc_segmap_task_23190_total_time; + int64_t futhark_mc_segmap_task_23190_total_iter; + int64_t futhark_mc_segred_task_23200_total_time; + int64_t futhark_mc_segred_task_23200_total_iter; + int64_t futhark_mc_segred_task_23211_total_time; + int64_t futhark_mc_segred_task_23211_total_iter; + int64_t futhark_mc_segred_task_23220_total_time; + int64_t futhark_mc_segred_task_23220_total_iter; + int64_t futhark_mc_copy_22333_task_23232_total_time; + int64_t futhark_mc_copy_22333_task_23232_total_iter; + int64_t futhark_mc_copy_22343_task_23239_total_time; + int64_t futhark_mc_copy_22343_task_23239_total_iter; + int64_t futhark_mc_copy_22356_task_23246_total_time; + int64_t futhark_mc_copy_22356_task_23246_total_iter; + int64_t futhark_mc_segmap_task_23253_total_time; + int64_t futhark_mc_segmap_task_23253_total_iter; + int64_t futhark_mc_segmap_task_23265_total_time; + int64_t futhark_mc_segmap_task_23265_total_iter; + int64_t futhark_mc_segred_task_23275_total_time; + int64_t futhark_mc_segred_task_23275_total_iter; + int64_t futhark_mc_segmap_task_23286_total_time; + int64_t futhark_mc_segmap_task_23286_total_iter; + int64_t futhark_mc_segred_task_23296_total_time; + int64_t futhark_mc_segred_task_23296_total_iter; + int64_t futhark_mc_copy_22554_task_23310_total_time; + int64_t futhark_mc_copy_22554_task_23310_total_iter; + int64_t futhark_mc_segmap_task_23317_total_time; + int64_t futhark_mc_segmap_task_23317_total_iter; + int64_t futhark_mc_segmap_task_23327_total_time; + int64_t futhark_mc_segmap_task_23327_total_iter; + int64_t futhark_mc_copy_22598_task_23337_total_time; + int64_t futhark_mc_copy_22598_task_23337_total_iter; }; static void setup_program(struct futhark_context *ctx) { @@ -6544,122 +6574,152 @@ static void setup_program(struct futhark_context *ctx) (void) error; ctx->program = malloc(sizeof(struct program)); - ctx->program->futhark_mc_segmap_task_19773_total_time = 0; - ctx->program->futhark_mc_segmap_task_19773_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19783_total_time = 0; - ctx->program->futhark_mc_segmap_task_19783_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19793_total_time = 0; - ctx->program->futhark_mc_segmap_task_19793_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19800_total_time = 0; - ctx->program->futhark_mc_segmap_task_19800_total_iter = 0; - ctx->program->futhark_mc_segred_task_19810_total_time = 0; - ctx->program->futhark_mc_segred_task_19810_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19818_total_time = 0; - ctx->program->futhark_mc_segmap_task_19818_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19828_total_time = 0; - ctx->program->futhark_mc_segmap_task_19828_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19838_total_time = 0; - ctx->program->futhark_mc_segmap_task_19838_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19848_total_time = 0; - ctx->program->futhark_mc_segmap_task_19848_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19855_total_time = 0; - ctx->program->futhark_mc_segmap_task_19855_total_iter = 0; - ctx->program->futhark_mc_copy_18224_task_19862_total_time = 0; - ctx->program->futhark_mc_copy_18224_task_19862_total_iter = 0; - ctx->program->futhark_mc_copy_18235_task_19872_total_time = 0; - ctx->program->futhark_mc_copy_18235_task_19872_total_iter = 0; - ctx->program->futhark_mc_copy_18245_task_19879_total_time = 0; - ctx->program->futhark_mc_copy_18245_task_19879_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19886_total_time = 0; - ctx->program->futhark_mc_segmap_task_19886_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19896_total_time = 0; - ctx->program->futhark_mc_segmap_task_19896_total_iter = 0; - ctx->program->futhark_mc_copy_18300_task_19906_total_time = 0; - ctx->program->futhark_mc_copy_18300_task_19906_total_iter = 0; - ctx->program->futhark_mc_copy_18310_task_19913_total_time = 0; - ctx->program->futhark_mc_copy_18310_task_19913_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19921_total_time = 0; - ctx->program->futhark_mc_segmap_task_19921_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19953_total_time = 0; - ctx->program->futhark_mc_segmap_task_19953_total_iter = 0; - ctx->program->futhark_mc_segred_task_19963_total_time = 0; - ctx->program->futhark_mc_segred_task_19963_total_iter = 0; - ctx->program->futhark_mc_segmap_task_19974_total_time = 0; - ctx->program->futhark_mc_segmap_task_19974_total_iter = 0; - ctx->program->futhark_mc_segred_task_19984_total_time = 0; - ctx->program->futhark_mc_segred_task_19984_total_iter = 0; - ctx->program->futhark_mc_segred_task_19995_total_time = 0; - ctx->program->futhark_mc_segred_task_19995_total_iter = 0; - ctx->program->futhark_mc_segred_task_20004_total_time = 0; - ctx->program->futhark_mc_segred_task_20004_total_iter = 0; - ctx->program->futhark_mc_segred_task_20013_total_time = 0; - ctx->program->futhark_mc_segred_task_20013_total_iter = 0; - ctx->program->futhark_mc_copy_19042_task_20025_total_time = 0; - ctx->program->futhark_mc_copy_19042_task_20025_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20032_total_time = 0; - ctx->program->futhark_mc_segmap_task_20032_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20040_total_time = 0; - ctx->program->futhark_mc_segmap_task_20040_total_iter = 0; - ctx->program->futhark_mc_segred_task_20050_total_time = 0; - ctx->program->futhark_mc_segred_task_20050_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20058_total_time = 0; - ctx->program->futhark_mc_segmap_task_20058_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20069_total_time = 0; - ctx->program->futhark_mc_segmap_task_20069_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20079_total_time = 0; - ctx->program->futhark_mc_segmap_task_20079_total_iter = 0; - ctx->program->futhark_mc_copy_19199_task_20089_total_time = 0; - ctx->program->futhark_mc_copy_19199_task_20089_total_iter = 0; - ctx->program->futhark_mc_copy_19212_task_20099_total_time = 0; - ctx->program->futhark_mc_copy_19212_task_20099_total_iter = 0; - ctx->program->futhark_mc_copy_19222_task_20106_total_time = 0; - ctx->program->futhark_mc_copy_19222_task_20106_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20113_total_time = 0; - ctx->program->futhark_mc_segmap_task_20113_total_iter = 0; - ctx->program->futhark_mc_copy_19251_task_20120_total_time = 0; - ctx->program->futhark_mc_copy_19251_task_20120_total_iter = 0; - ctx->program->futhark_mc_copy_19261_task_20127_total_time = 0; - ctx->program->futhark_mc_copy_19261_task_20127_total_iter = 0; - ctx->program->futhark_mc_copy_19274_task_20134_total_time = 0; - ctx->program->futhark_mc_copy_19274_task_20134_total_iter = 0; - ctx->program->futhark_mc_segred_task_20141_total_time = 0; - ctx->program->futhark_mc_segred_task_20141_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20159_total_time = 0; - ctx->program->futhark_mc_segmap_task_20159_total_iter = 0; - ctx->program->futhark_mc_segred_task_20169_total_time = 0; - ctx->program->futhark_mc_segred_task_20169_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20180_total_time = 0; - ctx->program->futhark_mc_segmap_task_20180_total_iter = 0; - ctx->program->futhark_mc_segred_task_20190_total_time = 0; - ctx->program->futhark_mc_segred_task_20190_total_iter = 0; - ctx->program->futhark_mc_segred_task_20201_total_time = 0; - ctx->program->futhark_mc_segred_task_20201_total_iter = 0; - ctx->program->futhark_mc_segred_task_20210_total_time = 0; - ctx->program->futhark_mc_segred_task_20210_total_iter = 0; - ctx->program->futhark_mc_copy_19482_task_20222_total_time = 0; - ctx->program->futhark_mc_copy_19482_task_20222_total_iter = 0; - ctx->program->futhark_mc_copy_19492_task_20229_total_time = 0; - ctx->program->futhark_mc_copy_19492_task_20229_total_iter = 0; - ctx->program->futhark_mc_copy_19505_task_20236_total_time = 0; - ctx->program->futhark_mc_copy_19505_task_20236_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20243_total_time = 0; - ctx->program->futhark_mc_segmap_task_20243_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20255_total_time = 0; - ctx->program->futhark_mc_segmap_task_20255_total_iter = 0; - ctx->program->futhark_mc_segred_task_20265_total_time = 0; - ctx->program->futhark_mc_segred_task_20265_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20276_total_time = 0; - ctx->program->futhark_mc_segmap_task_20276_total_iter = 0; - ctx->program->futhark_mc_segred_task_20286_total_time = 0; - ctx->program->futhark_mc_segred_task_20286_total_iter = 0; - ctx->program->futhark_mc_copy_19703_task_20300_total_time = 0; - ctx->program->futhark_mc_copy_19703_task_20300_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20307_total_time = 0; - ctx->program->futhark_mc_segmap_task_20307_total_iter = 0; - ctx->program->futhark_mc_segmap_task_20317_total_time = 0; - ctx->program->futhark_mc_segmap_task_20317_total_iter = 0; - ctx->program->futhark_mc_copy_19747_task_20327_total_time = 0; - ctx->program->futhark_mc_copy_19747_task_20327_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22627_total_time = 0; + ctx->program->futhark_mc_segmap_task_22627_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22637_total_time = 0; + ctx->program->futhark_mc_segmap_task_22637_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22647_total_time = 0; + ctx->program->futhark_mc_segmap_task_22647_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22654_total_time = 0; + ctx->program->futhark_mc_segmap_task_22654_total_iter = 0; + ctx->program->futhark_mc_segred_task_22664_total_time = 0; + ctx->program->futhark_mc_segred_task_22664_total_iter = 0; + ctx->program->futhark_mc_segred_task_22672_total_time = 0; + ctx->program->futhark_mc_segred_task_22672_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22690_total_time = 0; + ctx->program->futhark_mc_segmap_task_22690_total_iter = 0; + ctx->program->futhark_mc_segred_task_22700_total_time = 0; + ctx->program->futhark_mc_segred_task_22700_total_iter = 0; + ctx->program->futhark_mc_segred_task_22711_total_time = 0; + ctx->program->futhark_mc_segred_task_22711_total_iter = 0; + ctx->program->futhark_mc_segred_task_22720_total_time = 0; + ctx->program->futhark_mc_segred_task_22720_total_iter = 0; + ctx->program->futhark_mc_copy_20756_task_22729_total_time = 0; + ctx->program->futhark_mc_copy_20756_task_22729_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22739_total_time = 0; + ctx->program->futhark_mc_segmap_task_22739_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22749_total_time = 0; + ctx->program->futhark_mc_segmap_task_22749_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22756_total_time = 0; + ctx->program->futhark_mc_segmap_task_22756_total_iter = 0; + ctx->program->futhark_mc_copy_20833_task_22763_total_time = 0; + ctx->program->futhark_mc_copy_20833_task_22763_total_iter = 0; + ctx->program->futhark_mc_copy_20845_task_22773_total_time = 0; + ctx->program->futhark_mc_copy_20845_task_22773_total_iter = 0; + ctx->program->futhark_mc_copy_20855_task_22780_total_time = 0; + ctx->program->futhark_mc_copy_20855_task_22780_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22787_total_time = 0; + ctx->program->futhark_mc_segmap_task_22787_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22797_total_time = 0; + ctx->program->futhark_mc_segmap_task_22797_total_iter = 0; + ctx->program->futhark_mc_copy_20900_task_22804_total_time = 0; + ctx->program->futhark_mc_copy_20900_task_22804_total_iter = 0; + ctx->program->futhark_mc_copy_20913_task_22814_total_time = 0; + ctx->program->futhark_mc_copy_20913_task_22814_total_iter = 0; + ctx->program->futhark_mc_copy_20933_task_22821_total_time = 0; + ctx->program->futhark_mc_copy_20933_task_22821_total_iter = 0; + ctx->program->futhark_mc_copy_20943_task_22828_total_time = 0; + ctx->program->futhark_mc_copy_20943_task_22828_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22836_total_time = 0; + ctx->program->futhark_mc_segmap_task_22836_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22868_total_time = 0; + ctx->program->futhark_mc_segmap_task_22868_total_iter = 0; + ctx->program->futhark_mc_segred_task_22878_total_time = 0; + ctx->program->futhark_mc_segred_task_22878_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22889_total_time = 0; + ctx->program->futhark_mc_segmap_task_22889_total_iter = 0; + ctx->program->futhark_mc_segred_task_22899_total_time = 0; + ctx->program->futhark_mc_segred_task_22899_total_iter = 0; + ctx->program->futhark_mc_segred_task_22910_total_time = 0; + ctx->program->futhark_mc_segred_task_22910_total_iter = 0; + ctx->program->futhark_mc_segred_task_22919_total_time = 0; + ctx->program->futhark_mc_segred_task_22919_total_iter = 0; + ctx->program->futhark_mc_segred_task_22928_total_time = 0; + ctx->program->futhark_mc_segred_task_22928_total_iter = 0; + ctx->program->futhark_mc_copy_21675_task_22940_total_time = 0; + ctx->program->futhark_mc_copy_21675_task_22940_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22947_total_time = 0; + ctx->program->futhark_mc_segmap_task_22947_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22955_total_time = 0; + ctx->program->futhark_mc_segmap_task_22955_total_iter = 0; + ctx->program->futhark_mc_segred_task_22965_total_time = 0; + ctx->program->futhark_mc_segred_task_22965_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22973_total_time = 0; + ctx->program->futhark_mc_segmap_task_22973_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22984_total_time = 0; + ctx->program->futhark_mc_segmap_task_22984_total_iter = 0; + ctx->program->futhark_mc_segmap_task_22994_total_time = 0; + ctx->program->futhark_mc_segmap_task_22994_total_iter = 0; + ctx->program->futhark_mc_copy_21832_task_23004_total_time = 0; + ctx->program->futhark_mc_copy_21832_task_23004_total_iter = 0; + ctx->program->futhark_mc_copy_21845_task_23014_total_time = 0; + ctx->program->futhark_mc_copy_21845_task_23014_total_iter = 0; + ctx->program->futhark_mc_copy_21855_task_23021_total_time = 0; + ctx->program->futhark_mc_copy_21855_task_23021_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23028_total_time = 0; + ctx->program->futhark_mc_segmap_task_23028_total_iter = 0; + ctx->program->futhark_mc_copy_21884_task_23035_total_time = 0; + ctx->program->futhark_mc_copy_21884_task_23035_total_iter = 0; + ctx->program->futhark_mc_copy_21894_task_23042_total_time = 0; + ctx->program->futhark_mc_copy_21894_task_23042_total_iter = 0; + ctx->program->futhark_mc_segred_task_23049_total_time = 0; + ctx->program->futhark_mc_segred_task_23049_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23067_total_time = 0; + ctx->program->futhark_mc_segmap_task_23067_total_iter = 0; + ctx->program->futhark_mc_segred_task_23077_total_time = 0; + ctx->program->futhark_mc_segred_task_23077_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23088_total_time = 0; + ctx->program->futhark_mc_segmap_task_23088_total_iter = 0; + ctx->program->futhark_mc_segred_task_23098_total_time = 0; + ctx->program->futhark_mc_segred_task_23098_total_iter = 0; + ctx->program->futhark_mc_segred_task_23109_total_time = 0; + ctx->program->futhark_mc_segred_task_23109_total_iter = 0; + ctx->program->futhark_mc_segred_task_23118_total_time = 0; + ctx->program->futhark_mc_segred_task_23118_total_iter = 0; + ctx->program->futhark_mc_copy_22102_task_23130_total_time = 0; + ctx->program->futhark_mc_copy_22102_task_23130_total_iter = 0; + ctx->program->futhark_mc_copy_22112_task_23137_total_time = 0; + ctx->program->futhark_mc_copy_22112_task_23137_total_iter = 0; + ctx->program->futhark_mc_copy_22125_task_23144_total_time = 0; + ctx->program->futhark_mc_copy_22125_task_23144_total_iter = 0; + ctx->program->futhark_mc_segred_task_23151_total_time = 0; + ctx->program->futhark_mc_segred_task_23151_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23169_total_time = 0; + ctx->program->futhark_mc_segmap_task_23169_total_iter = 0; + ctx->program->futhark_mc_segred_task_23179_total_time = 0; + ctx->program->futhark_mc_segred_task_23179_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23190_total_time = 0; + ctx->program->futhark_mc_segmap_task_23190_total_iter = 0; + ctx->program->futhark_mc_segred_task_23200_total_time = 0; + ctx->program->futhark_mc_segred_task_23200_total_iter = 0; + ctx->program->futhark_mc_segred_task_23211_total_time = 0; + ctx->program->futhark_mc_segred_task_23211_total_iter = 0; + ctx->program->futhark_mc_segred_task_23220_total_time = 0; + ctx->program->futhark_mc_segred_task_23220_total_iter = 0; + ctx->program->futhark_mc_copy_22333_task_23232_total_time = 0; + ctx->program->futhark_mc_copy_22333_task_23232_total_iter = 0; + ctx->program->futhark_mc_copy_22343_task_23239_total_time = 0; + ctx->program->futhark_mc_copy_22343_task_23239_total_iter = 0; + ctx->program->futhark_mc_copy_22356_task_23246_total_time = 0; + ctx->program->futhark_mc_copy_22356_task_23246_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23253_total_time = 0; + ctx->program->futhark_mc_segmap_task_23253_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23265_total_time = 0; + ctx->program->futhark_mc_segmap_task_23265_total_iter = 0; + ctx->program->futhark_mc_segred_task_23275_total_time = 0; + ctx->program->futhark_mc_segred_task_23275_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23286_total_time = 0; + ctx->program->futhark_mc_segmap_task_23286_total_iter = 0; + ctx->program->futhark_mc_segred_task_23296_total_time = 0; + ctx->program->futhark_mc_segred_task_23296_total_iter = 0; + ctx->program->futhark_mc_copy_22554_task_23310_total_time = 0; + ctx->program->futhark_mc_copy_22554_task_23310_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23317_total_time = 0; + ctx->program->futhark_mc_segmap_task_23317_total_iter = 0; + ctx->program->futhark_mc_segmap_task_23327_total_time = 0; + ctx->program->futhark_mc_segmap_task_23327_total_iter = 0; + ctx->program->futhark_mc_copy_22598_task_23337_total_time = 0; + ctx->program->futhark_mc_copy_22598_task_23337_total_iter = 0; } static void teardown_program(struct futhark_context *ctx) { @@ -7245,7 +7305,7 @@ GEN_LMAD_COPY(8b, uint64_t) #define FUTHARK_FUN_ATTR static -FUTHARK_FUN_ATTR int futrts_entry_pcaWithQuantile(struct futhark_context *ctx, struct memblock *mem_out_p_19749, struct memblock *mem_out_p_19750, struct memblock *mem_out_p_19751, double *out_prim_out_19752, struct memblock X_mem_17533, int64_t n_12104, int64_t d_12105, int32_t iters_12106, double q_12107, int64_t k_12108); +FUTHARK_FUN_ATTR int futrts_entry_pcaWithQuantile(struct futhark_context *ctx, struct memblock *mem_out_p_22600, struct memblock *mem_out_p_22601, struct memblock *mem_out_p_22602, double *out_prim_out_22603, struct memblock X_mem_19970, int64_t n_12689, int64_t d_12690, int32_t iters_12691, double q_12692, int64_t k_12693); static int init_constants(struct futhark_context *ctx) { @@ -7262,1040 +7322,1040 @@ static int free_constants(struct futhark_context *ctx) (void) ctx; return 0; } -struct futhark_mc_task_19772 { +struct futhark_mc_task_22626 { struct futhark_context *ctx; - int64_t free_n_12104; - int64_t free_d_12105; - int64_t free_to_i64_res_13260; - bool free_loop_cond_13261; - unsigned char *free_X_mem_17533; - unsigned char *free_mem_17577; + int64_t free_n_12689; + int64_t free_d_12690; + int64_t free_to_i64_res_13889; + bool free_loop_cond_13890; + unsigned char *free_X_mem_19970; + unsigned char *free_mem_20014; }; -struct futhark_mc_segmap_parloop_struct_19774 { +struct futhark_mc_segmap_parloop_struct_22628 { struct futhark_context *ctx; - int64_t free_n_12104; - int64_t free_d_12105; - int64_t free_to_i64_res_13260; - bool free_loop_cond_13261; - unsigned char *free_X_mem_17533; - unsigned char *free_mem_17577; + int64_t free_n_12689; + int64_t free_d_12690; + int64_t free_to_i64_res_13889; + bool free_loop_cond_13890; + unsigned char *free_X_mem_19970; + unsigned char *free_mem_20014; }; -static int futhark_mc_segmap_parloop_19775(void *args, int64_t start, int64_t end, int subtask_id, int tid) +static int futhark_mc_segmap_parloop_22629(void *args, int64_t start, int64_t end, int subtask_id, int tid) { (void) subtask_id; (void) tid; int err = 0; - struct futhark_mc_segmap_parloop_struct_19774 *futhark_mc_segmap_parloop_struct_19774 = (struct futhark_mc_segmap_parloop_struct_19774 *) args; - struct futhark_context *ctx = futhark_mc_segmap_parloop_struct_19774->ctx; - struct mc_event *event_19779 = mc_event_new(ctx); - - if (event_19779 != NULL) - event_19779->bef = get_wall_time(); - - int64_t n_12104 = futhark_mc_segmap_parloop_struct_19774->free_n_12104; - int64_t d_12105 = futhark_mc_segmap_parloop_struct_19774->free_d_12105; - int64_t to_i64_res_13260 = futhark_mc_segmap_parloop_struct_19774->free_to_i64_res_13260; - bool loop_cond_13261 = futhark_mc_segmap_parloop_struct_19774->free_loop_cond_13261; - struct memblock X_mem_17533 = {.desc ="X_mem_17533", .mem =futhark_mc_segmap_parloop_struct_19774->free_X_mem_17533, .size =0, .references =NULL}; - struct memblock mem_17577 = {.desc ="mem_17577", .mem =futhark_mc_segmap_parloop_struct_19774->free_mem_17577, .size =0, .references =NULL}; + struct futhark_mc_segmap_parloop_struct_22628 *futhark_mc_segmap_parloop_struct_22628 = (struct futhark_mc_segmap_parloop_struct_22628 *) args; + struct futhark_context *ctx = futhark_mc_segmap_parloop_struct_22628->ctx; + struct mc_event *event_22633 = mc_event_new(ctx); + + if (event_22633 != NULL) + event_22633->bef = get_wall_time(); + + int64_t n_12689 = futhark_mc_segmap_parloop_struct_22628->free_n_12689; + int64_t d_12690 = futhark_mc_segmap_parloop_struct_22628->free_d_12690; + int64_t to_i64_res_13889 = futhark_mc_segmap_parloop_struct_22628->free_to_i64_res_13889; + bool loop_cond_13890 = futhark_mc_segmap_parloop_struct_22628->free_loop_cond_13890; + struct memblock X_mem_19970 = {.desc ="X_mem_19970", .mem =futhark_mc_segmap_parloop_struct_22628->free_X_mem_19970, .size =0, .references =NULL}; + struct memblock mem_20014 = {.desc ="mem_20014", .mem =futhark_mc_segmap_parloop_struct_22628->free_mem_20014, .size =0, .references =NULL}; int64_t iterations = end - start; - int64_t mem_17911_cached_sizze_19776 = 0; - unsigned char *mem_17911 = NULL; - int64_t mem_17913_cached_sizze_19777 = 0; - unsigned char *mem_17913 = NULL; - int64_t mem_17915_cached_sizze_19778 = 0; - unsigned char *mem_17915 = NULL; - struct memblock mem_param_tmp_18006; + int64_t mem_20410_cached_sizze_22630 = 0; + unsigned char *mem_20410 = NULL; + int64_t mem_20412_cached_sizze_22631 = 0; + unsigned char *mem_20412 = NULL; + int64_t mem_20414_cached_sizze_22632 = 0; + unsigned char *mem_20414 = NULL; + struct memblock mem_param_tmp_20505; - mem_param_tmp_18006.references = NULL; + mem_param_tmp_20505.references = NULL; - struct memblock mem_17972; + struct memblock mem_20471; - mem_17972.references = NULL; + mem_20471.references = NULL; - struct memblock mem_param_17891; + struct memblock mem_param_20390; - mem_param_17891.references = NULL; + mem_param_20390.references = NULL; - struct memblock ext_mem_17575; + struct memblock ext_mem_20012; - ext_mem_17575.references = NULL; + ext_mem_20012.references = NULL; - int64_t flat_tid_16455; + int64_t flat_tid_18525; - flat_tid_16455 = subtask_id; + flat_tid_18525 = subtask_id; { - int64_t start_18000; - int64_t end_18001; - - start_18000 = start; - end_18001 = end; - - int64_t n_18002 = end_18001 - start_18000; - - for (int64_t SegMap_i_18003 = start_18000; SegMap_i_18003 < start_18000 + n_18002; SegMap_i_18003++) { - int64_t slice_18004 = n_12104; - int64_t gtid_16456 = SegMap_i_18003; - int64_t remnant_18005 = SegMap_i_18003 - gtid_16456; - int64_t lmad_arg_17537 = d_12105 * gtid_16456; - int64_t ext_17574; - int64_t p_13262; - bool p_13263; - double p_13264; - int64_t p_13266; - int64_t ctx_param_ext_17892; - int64_t loop_dz2085U_17893; - bool loop_while_17894; - double nameless_17895; - int64_t idx_17897; - - if (memblock_set(ctx, &mem_param_17891, &X_mem_17533, "X_mem_17533") != 0) + int64_t start_20499; + int64_t end_20500; + + start_20499 = start; + end_20500 = end; + + int64_t n_20501 = end_20500 - start_20499; + + for (int64_t SegMap_i_20502 = start_20499; SegMap_i_20502 < start_20499 + n_20501; SegMap_i_20502++) { + int64_t slice_20503 = n_12689; + int64_t gtid_18526 = SegMap_i_20502; + int64_t remnant_20504 = SegMap_i_20502 - gtid_18526; + int64_t lmad_arg_19974 = d_12690 * gtid_18526; + int64_t ext_20011; + int64_t p_13891; + bool p_13892; + double p_13893; + int64_t p_13895; + int64_t ctx_param_ext_20391; + int64_t loop_dz2085U_20392; + bool loop_while_20393; + double nameless_20394; + int64_t idx_20396; + + if (memblock_set(ctx, &mem_param_20390, &X_mem_19970, "X_mem_19970") != 0) return 1; - ctx_param_ext_17892 = lmad_arg_17537; - loop_dz2085U_17893 = d_12105; - loop_while_17894 = loop_cond_13261; - nameless_17895 = NAN; - idx_17897 = to_i64_res_13260; - while (loop_while_17894) { - bool y_17898 = slt64((int64_t) 0, loop_dz2085U_17893); - bool index_certs_17899; + ctx_param_ext_20391 = lmad_arg_19974; + loop_dz2085U_20392 = d_12690; + loop_while_20393 = loop_cond_13890; + nameless_20394 = NAN; + idx_20396 = to_i64_res_13889; + while (loop_while_20393) { + bool y_20397 = slt64((int64_t) 0, loop_dz2085U_20392); + bool index_certs_20398; - if (!y_17898) { - set_error(ctx, msgprintf("Error: %s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) (int64_t) 0, "] out of bounds for array of shape [", (long long) loop_dz2085U_17893, "].", "-> #0 /prelude/array.fut:22:29-33\n #1 pca.fut:36:17-24\n #2 pca.fut:71:17-25\n #3 pca.fut:71:29-30\n #4 pca.fut:70:1-75:96\n")); + if (!y_20397) { + set_error(ctx, msgprintf("Error: %s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) (int64_t) 0, "] out of bounds for array of shape [", (long long) loop_dz2085U_20392, "].", "-> #0 /prelude/array.fut:22:29-33\n #1 pca.fut:36:17-24\n #2 pca.fut:72:17-25\n #3 pca.fut:72:29-30\n #4 pca.fut:71:1-76:96\n")); err = FUTHARK_PROGRAM_ERROR; goto cleanup; } - double head_res_17900 = ((double *) mem_param_17891.mem)[ctx_param_ext_17892]; - int64_t j_m_i_17901 = sub64(loop_dz2085U_17893, (int64_t) 1); - bool empty_slice_17902 = j_m_i_17901 == (int64_t) 0; - bool zzero_leq_i_p_m_t_s_17903 = sle64((int64_t) 0, j_m_i_17901); - bool i_p_m_t_s_leq_w_17904 = slt64(j_m_i_17901, loop_dz2085U_17893); - bool i_lte_j_17905 = sle64((int64_t) 1, loop_dz2085U_17893); - bool y_17906 = zzero_leq_i_p_m_t_s_17903 && i_p_m_t_s_leq_w_17904; - bool forwards_ok_17907 = i_lte_j_17905 && y_17906; - bool ok_or_empty_17908 = empty_slice_17902 || forwards_ok_17907; - bool index_certs_17909; + double head_res_20399 = ((double *) mem_param_20390.mem)[ctx_param_ext_20391]; + int64_t j_m_i_20400 = sub64(loop_dz2085U_20392, (int64_t) 1); + bool empty_slice_20401 = j_m_i_20400 == (int64_t) 0; + bool zzero_leq_i_p_m_t_s_20402 = sle64((int64_t) 0, j_m_i_20400); + bool i_p_m_t_s_leq_w_20403 = slt64(j_m_i_20400, loop_dz2085U_20392); + bool i_lte_j_20404 = sle64((int64_t) 1, loop_dz2085U_20392); + bool y_20405 = zzero_leq_i_p_m_t_s_20402 && i_p_m_t_s_leq_w_20403; + bool forwards_ok_20406 = i_lte_j_20404 && y_20405; + bool ok_or_empty_20407 = empty_slice_20401 || forwards_ok_20406; + bool index_certs_20408; - if (!ok_or_empty_17908) { - set_error(ctx, msgprintf("Error: %s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) (int64_t) 1, ":] out of bounds for array of shape [", (long long) loop_dz2085U_17893, "].", "-> #0 /prelude/array.fut:34:37-42\n #1 pca.fut:37:46-53\n #2 pca.fut:71:17-25\n #3 pca.fut:71:29-30\n #4 pca.fut:70:1-75:96\n")); + if (!ok_or_empty_20407) { + set_error(ctx, msgprintf("Error: %s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) (int64_t) 1, ":] out of bounds for array of shape [", (long long) loop_dz2085U_20392, "].", "-> #0 /prelude/array.fut:34:37-42\n #1 pca.fut:37:46-53\n #2 pca.fut:72:17-25\n #3 pca.fut:72:29-30\n #4 pca.fut:71:1-76:96\n")); err = FUTHARK_PROGRAM_ERROR; goto cleanup; } - int64_t bytes_17910 = (int64_t) 8 * j_m_i_17901; + int64_t bytes_20409 = (int64_t) 8 * j_m_i_20400; - if (mem_17911_cached_sizze_19776 < bytes_17910) { - err = lexical_realloc(ctx, &mem_17911, &mem_17911_cached_sizze_19776, bytes_17910); + if (mem_20410_cached_sizze_22630 < bytes_20409) { + err = lexical_realloc(ctx, &mem_20410, &mem_20410_cached_sizze_22630, bytes_20409); if (err != FUTHARK_SUCCESS) goto cleanup; } - if (mem_17913_cached_sizze_19777 < bytes_17910) { - err = lexical_realloc(ctx, &mem_17913, &mem_17913_cached_sizze_19777, bytes_17910); + if (mem_20412_cached_sizze_22631 < bytes_20409) { + err = lexical_realloc(ctx, &mem_20412, &mem_20412_cached_sizze_22631, bytes_20409); if (err != FUTHARK_SUCCESS) goto cleanup; } - if (mem_17915_cached_sizze_19778 < bytes_17910) { - err = lexical_realloc(ctx, &mem_17915, &mem_17915_cached_sizze_19778, bytes_17910); + if (mem_20414_cached_sizze_22632 < bytes_20409) { + err = lexical_realloc(ctx, &mem_20414, &mem_20414_cached_sizze_22632, bytes_20409); if (err != FUTHARK_SUCCESS) goto cleanup; } - int64_t discard_17917; - int64_t discard_17918; - int64_t scanacc_17923; - int64_t scanacc_17924; + int64_t discard_20416; + int64_t discard_20417; + int64_t scanacc_20422; + int64_t scanacc_20423; - scanacc_17923 = (int64_t) 0; - scanacc_17924 = (int64_t) 0; - for (int64_t i_17922 = 0; i_17922 < j_m_i_17901; i_17922++) { - int64_t slice_17928 = (int64_t) 1 + i_17922; - double x_17929 = ((double *) mem_param_17891.mem)[ctx_param_ext_17892 + slice_17928]; - bool lifted_lambda_res_17930 = x_17929 <= head_res_17900; - bool cond_neg_17931 = !lifted_lambda_res_17930; - int64_t defunc_0_lifted_pzq_res_17932 = btoi_bool_i64(cond_neg_17931); - bool is_i_17933 = defunc_0_lifted_pzq_res_17932 == (int64_t) 0; - int64_t part_res_17934 = btoi_bool_i64(is_i_17933); - int64_t part_res_17935; - int64_t part_res_17936; + scanacc_20422 = (int64_t) 0; + scanacc_20423 = (int64_t) 0; + for (int64_t i_20421 = 0; i_20421 < j_m_i_20400; i_20421++) { + int64_t slice_20427 = (int64_t) 1 + i_20421; + double x_20428 = ((double *) mem_param_20390.mem)[ctx_param_ext_20391 + slice_20427]; + bool lifted_lambda_res_20429 = x_20428 <= head_res_20399; + bool cond_neg_20430 = !lifted_lambda_res_20429; + int64_t defunc_0_lifted_pzq_res_20431 = btoi_bool_i64(cond_neg_20430); + bool is_i_20432 = defunc_0_lifted_pzq_res_20431 == (int64_t) 0; + int64_t part_res_20433 = btoi_bool_i64(is_i_20432); + int64_t part_res_20434; + int64_t part_res_20435; - if (is_i_17933) { - part_res_17935 = (int64_t) 0; - part_res_17936 = (int64_t) 0; + if (is_i_20432) { + part_res_20434 = (int64_t) 0; + part_res_20435 = (int64_t) 0; } else { - bool is_i_17937 = defunc_0_lifted_pzq_res_17932 == (int64_t) 1; - int64_t part_res_17938; + bool is_i_20436 = defunc_0_lifted_pzq_res_20431 == (int64_t) 1; + int64_t part_res_20437; - if (is_i_17937) { - part_res_17938 = (int64_t) 1; + if (is_i_20436) { + part_res_20437 = (int64_t) 1; } else { - part_res_17938 = (int64_t) 2; + part_res_20437 = (int64_t) 2; } - int64_t part_res_17939 = btoi_bool_i64(is_i_17937); + int64_t part_res_20438 = btoi_bool_i64(is_i_20436); - part_res_17935 = part_res_17938; - part_res_17936 = part_res_17939; + part_res_20434 = part_res_20437; + part_res_20435 = part_res_20438; } - int64_t zz_17940 = part_res_17934 + scanacc_17923; - int64_t zz_17941 = part_res_17936 + scanacc_17924; + int64_t zz_20439 = part_res_20433 + scanacc_20422; + int64_t zz_20440 = part_res_20435 + scanacc_20423; - ((int64_t *) mem_17911)[i_17922] = zz_17940; - ((int64_t *) mem_17913)[i_17922] = zz_17941; - ((int64_t *) mem_17915)[i_17922] = part_res_17935; + ((int64_t *) mem_20410)[i_20421] = zz_20439; + ((int64_t *) mem_20412)[i_20421] = zz_20440; + ((int64_t *) mem_20414)[i_20421] = part_res_20434; - int64_t scanacc_tmp_18013 = zz_17940; - int64_t scanacc_tmp_18014 = zz_17941; + int64_t scanacc_tmp_20512 = zz_20439; + int64_t scanacc_tmp_20513 = zz_20440; - scanacc_17923 = scanacc_tmp_18013; - scanacc_17924 = scanacc_tmp_18014; + scanacc_20422 = scanacc_tmp_20512; + scanacc_20423 = scanacc_tmp_20513; } - discard_17917 = scanacc_17923; - discard_17918 = scanacc_17924; + discard_20416 = scanacc_20422; + discard_20417 = scanacc_20423; - int64_t last_index_17945 = j_m_i_17901 - (int64_t) 1; - bool x_17946 = !empty_slice_17902; - int64_t last_offset_17947; + int64_t last_index_20444 = j_m_i_20400 - (int64_t) 1; + bool x_20445 = !empty_slice_20401; + int64_t last_offset_20446; - if (x_17946) { - int64_t x_17948 = ((int64_t *) mem_17911)[last_index_17945]; + if (x_20445) { + int64_t x_20447 = ((int64_t *) mem_20410)[last_index_20444]; - last_offset_17947 = x_17948; + last_offset_20446 = x_20447; } else { - last_offset_17947 = (int64_t) 0; + last_offset_20446 = (int64_t) 0; } - int64_t partition_sizze_17949; + int64_t partition_sizze_20448; - if (empty_slice_17902) { - partition_sizze_17949 = (int64_t) 0; + if (empty_slice_20401) { + partition_sizze_20448 = (int64_t) 0; } else { - partition_sizze_17949 = last_offset_17947; + partition_sizze_20448 = last_offset_20446; } - bool eq_x_zz_17950 = (int64_t) 0 == last_offset_17947; - bool p_and_eq_x_y_17951 = x_17946 && eq_x_zz_17950; - bool empty_slice_17952 = empty_slice_17902 || p_and_eq_x_y_17951; - int64_t m_17953 = sub64(partition_sizze_17949, (int64_t) 1); - bool zzero_leq_i_p_m_t_s_17954 = sle64((int64_t) 0, m_17953); - bool i_p_m_t_s_leq_w_17955 = slt64(m_17953, j_m_i_17901); - bool i_lte_j_17956 = sle64((int64_t) 0, partition_sizze_17949); - bool y_17957 = zzero_leq_i_p_m_t_s_17954 && i_p_m_t_s_leq_w_17955; - bool forwards_ok_17958 = i_lte_j_17956 && y_17957; - bool ok_or_empty_17959 = empty_slice_17952 || forwards_ok_17958; - bool index_certs_17960; + bool eq_x_zz_20449 = (int64_t) 0 == last_offset_20446; + bool p_and_eq_x_y_20450 = x_20445 && eq_x_zz_20449; + bool empty_slice_20451 = empty_slice_20401 || p_and_eq_x_y_20450; + int64_t m_20452 = sub64(partition_sizze_20448, (int64_t) 1); + bool zzero_leq_i_p_m_t_s_20453 = sle64((int64_t) 0, m_20452); + bool i_p_m_t_s_leq_w_20454 = slt64(m_20452, j_m_i_20400); + bool i_lte_j_20455 = sle64((int64_t) 0, partition_sizze_20448); + bool y_20456 = zzero_leq_i_p_m_t_s_20453 && i_p_m_t_s_leq_w_20454; + bool forwards_ok_20457 = i_lte_j_20455 && y_20456; + bool ok_or_empty_20458 = empty_slice_20451 || forwards_ok_20457; + bool index_certs_20459; - if (!ok_or_empty_17959) { - set_error(ctx, msgprintf("Error: %s%lld%s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) (int64_t) 0, ":", (long long) partition_sizze_17949, "] out of bounds for array of shape [", (long long) j_m_i_17901, "].", "-> #0 /prelude/soacs.fut:174:7-19\n #1 pca.fut:37:46-53\n #2 pca.fut:71:17-25\n #3 pca.fut:71:29-30\n #4 pca.fut:70:1-75:96\n")); + if (!ok_or_empty_20458) { + set_error(ctx, msgprintf("Error: %s%lld%s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) (int64_t) 0, ":", (long long) partition_sizze_20448, "] out of bounds for array of shape [", (long long) j_m_i_20400, "].", "-> #0 /prelude/soacs.fut:174:7-19\n #1 pca.fut:37:46-53\n #2 pca.fut:72:17-25\n #3 pca.fut:72:29-30\n #4 pca.fut:71:1-76:96\n")); err = FUTHARK_PROGRAM_ERROR; goto cleanup; } - int64_t j_m_i_17961 = sub64(j_m_i_17901, partition_sizze_17949); - bool empty_slice_17962 = j_m_i_17961 == (int64_t) 0; - int64_t m_17963 = sub64(j_m_i_17961, (int64_t) 1); - int64_t i_p_m_t_s_17964 = add64(partition_sizze_17949, m_17963); - bool zzero_leq_i_p_m_t_s_17965 = sle64((int64_t) 0, i_p_m_t_s_17964); - bool i_p_m_t_s_leq_w_17966 = slt64(i_p_m_t_s_17964, j_m_i_17901); - bool i_lte_j_17967 = sle64(partition_sizze_17949, j_m_i_17901); - bool y_17968 = zzero_leq_i_p_m_t_s_17965 && i_p_m_t_s_leq_w_17966; - bool forwards_ok_17969 = i_lte_j_17967 && y_17968; - bool ok_or_empty_17970 = empty_slice_17962 || forwards_ok_17969; - bool index_certs_17971; + int64_t j_m_i_20460 = sub64(j_m_i_20400, partition_sizze_20448); + bool empty_slice_20461 = j_m_i_20460 == (int64_t) 0; + int64_t m_20462 = sub64(j_m_i_20460, (int64_t) 1); + int64_t i_p_m_t_s_20463 = add64(partition_sizze_20448, m_20462); + bool zzero_leq_i_p_m_t_s_20464 = sle64((int64_t) 0, i_p_m_t_s_20463); + bool i_p_m_t_s_leq_w_20465 = slt64(i_p_m_t_s_20463, j_m_i_20400); + bool i_lte_j_20466 = sle64(partition_sizze_20448, j_m_i_20400); + bool y_20467 = zzero_leq_i_p_m_t_s_20464 && i_p_m_t_s_leq_w_20465; + bool forwards_ok_20468 = i_lte_j_20466 && y_20467; + bool ok_or_empty_20469 = empty_slice_20461 || forwards_ok_20468; + bool index_certs_20470; - if (!ok_or_empty_17970) { - set_error(ctx, msgprintf("Error: %s%lld%s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) partition_sizze_17949, ":", (long long) j_m_i_17901, "] out of bounds for array of shape [", (long long) j_m_i_17901, "].", "-> #0 /prelude/soacs.fut:174:21-33\n #1 pca.fut:37:46-53\n #2 pca.fut:71:17-25\n #3 pca.fut:71:29-30\n #4 pca.fut:70:1-75:96\n")); + if (!ok_or_empty_20469) { + set_error(ctx, msgprintf("Error: %s%lld%s%lld%s%lld%s\n\nBacktrace:\n%s", "Index [", (long long) partition_sizze_20448, ":", (long long) j_m_i_20400, "] out of bounds for array of shape [", (long long) j_m_i_20400, "].", "-> #0 /prelude/soacs.fut:174:21-33\n #1 pca.fut:37:46-53\n #2 pca.fut:72:17-25\n #3 pca.fut:72:29-30\n #4 pca.fut:71:1-76:96\n")); err = FUTHARK_PROGRAM_ERROR; goto cleanup; } - if (memblock_alloc(ctx, &mem_17972, bytes_17910, "mem_17972")) { + if (memblock_alloc(ctx, &mem_20471, bytes_20409, "mem_20471")) { err = 1; goto cleanup; } - int64_t y_17974 = (int64_t) -1 + partition_sizze_17949; + int64_t y_20473 = (int64_t) -1 + partition_sizze_20448; - for (int64_t write_iter_17976 = 0; write_iter_17976 < j_m_i_17901; write_iter_17976++) { - int64_t write_iv_17978 = ((int64_t *) mem_17915)[write_iter_17976]; - int64_t write_iv_17979 = ((int64_t *) mem_17911)[write_iter_17976]; - int64_t write_iv_17980 = ((int64_t *) mem_17913)[write_iter_17976]; - int64_t slice_17981 = (int64_t) 1 + write_iter_17976; - double write_iv_17982 = ((double *) mem_param_17891.mem)[ctx_param_ext_17892 + slice_17981]; - bool is_this_one_17983 = write_iv_17978 == (int64_t) 0; - bool is_this_one_17984 = write_iv_17978 == (int64_t) 1; - int64_t this_offset_17985 = y_17974 + write_iv_17980; - int64_t total_res_17986; + for (int64_t write_iter_20475 = 0; write_iter_20475 < j_m_i_20400; write_iter_20475++) { + int64_t write_iv_20477 = ((int64_t *) mem_20414)[write_iter_20475]; + int64_t write_iv_20478 = ((int64_t *) mem_20410)[write_iter_20475]; + int64_t write_iv_20479 = ((int64_t *) mem_20412)[write_iter_20475]; + int64_t slice_20480 = (int64_t) 1 + write_iter_20475; + double write_iv_20481 = ((double *) mem_param_20390.mem)[ctx_param_ext_20391 + slice_20480]; + bool is_this_one_20482 = write_iv_20477 == (int64_t) 0; + bool is_this_one_20483 = write_iv_20477 == (int64_t) 1; + int64_t this_offset_20484 = y_20473 + write_iv_20479; + int64_t total_res_20485; - if (is_this_one_17984) { - total_res_17986 = this_offset_17985; + if (is_this_one_20483) { + total_res_20485 = this_offset_20484; } else { - total_res_17986 = (int64_t) -1; + total_res_20485 = (int64_t) -1; } - int64_t this_offset_17987 = (int64_t) -1 + write_iv_17979; - int64_t total_res_17988; + int64_t this_offset_20486 = (int64_t) -1 + write_iv_20478; + int64_t total_res_20487; - if (is_this_one_17983) { - total_res_17988 = this_offset_17987; + if (is_this_one_20482) { + total_res_20487 = this_offset_20486; } else { - total_res_17988 = total_res_17986; + total_res_20487 = total_res_20485; } - if (sle64((int64_t) 0, total_res_17988) && slt64(total_res_17988, j_m_i_17901)) { - ((double *) mem_17972.mem)[total_res_17988] = write_iv_17982; + if (sle64((int64_t) 0, total_res_20487) && slt64(total_res_20487, j_m_i_20400)) { + ((double *) mem_20471.mem)[total_res_20487] = write_iv_20481; } } - int64_t m_17990 = add64((int64_t) 1, partition_sizze_17949); - bool cond_17991 = slt64(idx_17897, m_17990); - int64_t loopres_17992; + int64_t m_20489 = add64((int64_t) 1, partition_sizze_20448); + bool cond_20490 = slt64(idx_20396, m_20489); + int64_t loopres_20491; - if (cond_17991) { - loopres_17992 = partition_sizze_17949; + if (cond_20490) { + loopres_20491 = partition_sizze_20448; } else { - loopres_17992 = j_m_i_17961; + loopres_20491 = j_m_i_20460; } - int64_t ext_17995; + int64_t ext_20494; - if (cond_17991) { - ext_17995 = (int64_t) 0; + if (cond_20490) { + ext_20494 = (int64_t) 0; } else { - ext_17995 = partition_sizze_17949; + ext_20494 = partition_sizze_20448; } - int64_t loopres_17997; + int64_t loopres_20496; - if (cond_17991) { - loopres_17997 = idx_17897; + if (cond_20490) { + loopres_20496 = idx_20396; } else { - int64_t tmp_17998 = sub64(idx_17897, m_17990); + int64_t tmp_20497 = sub64(idx_20396, m_20489); - loopres_17997 = tmp_17998; + loopres_20496 = tmp_20497; } - bool loop_cond_17999 = slt64((int64_t) 1, loopres_17992); + bool loop_cond_20498 = slt64((int64_t) 1, loopres_20491); - if (memblock_set(ctx, &mem_param_tmp_18006, &mem_17972, "mem_17972") != 0) + if (memblock_set(ctx, &mem_param_tmp_20505, &mem_20471, "mem_20471") != 0) return 1; - int64_t ctx_param_ext_tmp_18007 = ext_17995; - int64_t loop_dz2085U_tmp_18008 = loopres_17992; - bool loop_while_tmp_18009 = loop_cond_17999; - double nameless_tmp_18010 = head_res_17900; - int64_t idx_tmp_18012 = loopres_17997; + int64_t ctx_param_ext_tmp_20506 = ext_20494; + int64_t loop_dz2085U_tmp_20507 = loopres_20491; + bool loop_while_tmp_20508 = loop_cond_20498; + double nameless_tmp_20509 = head_res_20399; + int64_t idx_tmp_20511 = loopres_20496; - if (memblock_set(ctx, &mem_param_17891, &mem_param_tmp_18006, "mem_param_tmp_18006") != 0) + if (memblock_set(ctx, &mem_param_20390, &mem_param_tmp_20505, "mem_param_tmp_20505") != 0) return 1; - ctx_param_ext_17892 = ctx_param_ext_tmp_18007; - loop_dz2085U_17893 = loop_dz2085U_tmp_18008; - loop_while_17894 = loop_while_tmp_18009; - nameless_17895 = nameless_tmp_18010; - idx_17897 = idx_tmp_18012; + ctx_param_ext_20391 = ctx_param_ext_tmp_20506; + loop_dz2085U_20392 = loop_dz2085U_tmp_20507; + loop_while_20393 = loop_while_tmp_20508; + nameless_20394 = nameless_tm