require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_GLIBCXX_PARALLEL_MULTIWAY_MERGE_H)) {
    eval 'sub _GLIBCXX_PARALLEL_MULTIWAY_MERGE_H () {1;}' unless defined(&_GLIBCXX_PARALLEL_MULTIWAY_MERGE_H);
    require 'vector';
    require 'bits/stl_algo.ph';
    require 'parallel/features.ph';
    require 'parallel/parallel.ph';
    require 'parallel/losertree.ph';
    require 'parallel/multiseq_selection.ph';
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
	require 'parallel/checkers.ph';
    }
    eval 'sub _GLIBCXX_PARALLEL_LENGTH {
        my($__s) = @_;
	    eval q((($__s). &second - ($__s). &first));
    }' unless defined(&_GLIBCXX_PARALLEL_LENGTH);
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    eval 'sub _GLIBCXX_PARALLEL_MERGE_3_CASE {
        my($__a, $__b, $__c, $__c0, $__c1) = @_;
	    eval q( &__s  $__a  $__b  $__c : * &__target = * &__seq  $__a; ++ &__target; -- &__length; ++ &__seq  $__a;  &if ( &__length == 0)  &goto  &__finish;  &if ( &__seq  $__a $__c0  &__seq  $__b)  &goto  &__s  $__a  $__b  $__c;  &if ( &__seq  $__a $__c1  &__seq  $__c)  &goto  &__s  $__b  $__a  $__c;  &goto  &__s  $__b  $__c  $__a;);
    }' unless defined(&_GLIBCXX_PARALLEL_MERGE_3_CASE);
    undef(&_GLIBCXX_PARALLEL_MERGE_3_CASE) if defined(&_GLIBCXX_PARALLEL_MERGE_3_CASE);
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    eval 'sub _GLIBCXX_PARALLEL_DECISION {
        my($__a, $__b, $__c, $__d) = @_;
	    eval q({  &if ( &__seq  $__d <  &__seq  $__a)  &goto  &__s  $__d  $__a  $__b  $__c;  &if ( &__seq  $__d <  &__seq  $__b)  &goto  &__s  $__a  $__d  $__b  $__c;  &if ( &__seq  $__d <  &__seq  $__c)  &goto  &__s  $__a  $__b  $__d  $__c;  &goto  &__s  $__a  $__b  $__c  $__d; });
    }' unless defined(&_GLIBCXX_PARALLEL_DECISION);
    eval 'sub _GLIBCXX_PARALLEL_MERGE_4_CASE {
        my($__a, $__b, $__c, $__d,  				       $__c0, $__c1, $__c2) = @_;
	    eval q( &__s  $__a  $__b  $__c  $__d:  &if ( &__length == 0)  &goto  &__finish; * &__target = * &__seq  $__a; ++ &__target; -- &__length; ++ &__seq  $__a;  &if ( &__seq  $__a $__c0  &__seq  $__b)  &goto  &__s  $__a  $__b  $__c  $__d;  &if ( &__seq  $__a $__c1  &__seq  $__c)  &goto  &__s  $__b  $__a  $__c  $__d;  &if ( &__seq  $__a $__c2  &__seq  $__d)  &goto  &__s  $__b  $__c  $__a  $__d;  &goto  &__s  $__b  $__c  $__d  $__a;);
    }' unless defined(&_GLIBCXX_PARALLEL_MERGE_4_CASE);
    undef(&_GLIBCXX_PARALLEL_MERGE_4_CASE) if defined(&_GLIBCXX_PARALLEL_MERGE_4_CASE);
    undef(&_GLIBCXX_PARALLEL_DECISION) if defined(&_GLIBCXX_PARALLEL_DECISION);
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
    if((defined(&_GLIBCXX_PARALLEL_ASSERTIONS) ? &_GLIBCXX_PARALLEL_ASSERTIONS : undef)) {
    }
}
1;
