#ifndef PLS_LIBRARY_H
#define PLS_LIBRARY_H

#include "pls/algorithms/invoke_parallel.h"
#include "pls/algorithms/parallel_for.h"
#include "pls/algorithms/parallel_scan.h"
#include "pls/internal/scheduling/task.h"
#include "pls/internal/scheduling/scheduler.h"
#include "pls/internal/helpers/unique_id.h"

namespace pls {

using internal::scheduling::static_scheduler_memory;
using internal::scheduling::malloc_scheduler_memory;

using internal::scheduling::scheduler;

using unique_id = internal::helpers::unique_id;

using internal::scheduling::task;
using internal::scheduling::lambda_task_by_reference;
using internal::scheduling::lambda_task_by_value;
using internal::scheduling::task;

using algorithm::invoke_parallel;
using algorithm::parallel_for;
using algorithm::parallel_scan;
}

#endif
