Halide 18.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
MainPage.h
Go to the documentation of this file.
1/** \file
2 * This file only exists to contain the front-page of the documentation
3 */
4
5/** \mainpage Halide
6 *
7 * Halide is a programming language designed to make it easier to
8 * write high-performance image processing code on modern
9 * machines. Its front end is embedded in C++. Compiler
10 * targets include x86/SSE, ARM v7/NEON, CUDA, Native Client,
11 * OpenCL, and Metal.
12 *
13 * You build a Halide program by writing C++ code using objects of
14 * type \ref Halide::Var, \ref Halide::Expr, and \ref Halide::Func,
15 * and then calling \ref Halide::Func::compile_to_file to generate an
16 * object file and header (good for deploying large routines), or
17 * calling \ref Halide::Func::realize to JIT-compile and run the
18 * pipeline immediately (good for testing small routines).
19 *
20 * To learn Halide, we recommend you start with the <a href=examples.html>tutorials</a>.
21 *
22 * You can also look in the test folder for many small examples that
23 * use Halide's various features, and in the apps folder for some
24 * larger examples that statically compile halide pipelines. In
25 * particular check out local_laplacian, bilateral_grid, and
26 * interpolate.
27 *
28 * Below are links to the documentation for the important classes in Halide.
29 *
30 * For defining, scheduling, and evaluating basic pipelines:
31 *
32 * Halide::Func, Halide::Stage, Halide::Var
33 *
34 * Our image data type:
35 *
36 * Halide::Buffer
37 *
38 * For passing around and reusing halide expressions:
39 *
40 * Halide::Expr
41 *
42 * For representing scalar and image parameters to pipelines:
43 *
44 * Halide::Param, Halide::ImageParam
45 *
46 * For writing functions that reduce or scatter over some domain:
47 *
48 * Halide::RDom
49 *
50 * For writing and evaluating functions that return multiple values:
51 *
52 * Halide::Tuple, Halide::Realization
53 *
54 */
55
56/**
57 * \example tutorial/lesson_01_basics.cpp
58 * \example tutorial/lesson_02_input_image.cpp
59 * \example tutorial/lesson_03_debugging_1.cpp
60 * \example tutorial/lesson_04_debugging_2.cpp
61 * \example tutorial/lesson_05_scheduling_1.cpp
62 * \example tutorial/lesson_06_realizing_over_shifted_domains.cpp
63 * \example tutorial/lesson_07_multi_stage_pipelines.cpp
64 * \example tutorial/lesson_08_scheduling_2.cpp
65 * \example tutorial/lesson_09_update_definitions.cpp
66 * \example tutorial/lesson_10_aot_compilation_generate.cpp
67 * \example tutorial/lesson_10_aot_compilation_run.cpp
68 * \example tutorial/lesson_11_cross_compilation.cpp
69 * \example tutorial/lesson_12_using_the_gpu.cpp
70 * \example tutorial/lesson_13_tuples.cpp
71 * \example tutorial/lesson_14_types.cpp
72 * \example tutorial/lesson_15_generators.cpp
73 */