ALP User Documentation 0.7.alpha
Algebraic Programming User Documentation
Loading...
Searching...
No Matches
graphblas.hpp
Go to the documentation of this file.
1
2/*
3 * Copyright 2021 Huawei Technologies Co., Ltd.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
368#ifdef __DOXYGEN__
369
377#define _GRB_NO_LIBNUMA
378
386#define _GRB_NO_PINNING
387
398#define _GRB_NO_STDIO
399
415#define _GRB_NO_EXCEPTIONS
416
424#define _GRB_WITH_LPF
425
434#define _GRB_BACKEND reference
435
442#define _GRB_BSP1D_BACKEND
443
450namespace grb {
451
455 namespace algorithms {
456
460 namespace pregel {}
461
462 }
463
468 namespace interfaces {}
469
470}
471
472#endif // end ``#ifdef __DOXYGEN__''
473
474#ifndef _H_GRAPHBLAS
475#define _H_GRAPHBLAS
476
477// load active configuration
478#include <graphblas/config.hpp> //defines _GRB_BACKEND and _WITH_BSP
479
480// collects the user-level includes
481// the order of these includes matter--
482// do not modify without proper consideration!
483
484// First include all algebraic structures, which have the benefit of not
485// depending on anything else
486#include <graphblas/ops.hpp>
487#include <graphblas/monoid.hpp>
488#include <graphblas/semiring.hpp>
489
490// Then include containers. If containers rely on ALP/GraphBLAS primitives that
491// are defined as free functions, then container implementations must forward-
492// declare those.
493#include <graphblas/vector.hpp>
494#include <graphblas/matrix.hpp>
495
496// The aforementioned forward declarations must be in sync with the
497// declarations of the user primitives defined as free functions in the below.
498// The below relies on both algebraic structures/relations as well as container
499// definitions. By maintaining the current order, these do not require forward
500// declarations.
501#include <graphblas/io.hpp>
502#include <graphblas/benchmark.hpp>
503#include <graphblas/blas0.hpp>
504#include <graphblas/blas1.hpp>
505#include <graphblas/blas2.hpp>
506#include <graphblas/blas3.hpp>
507#include <graphblas/collectives.hpp>
508#include <graphblas/exec.hpp>
509#include <graphblas/init.hpp>
510#include <graphblas/ops.hpp>
511#include <graphblas/pinnedvector.hpp>
512#include <graphblas/properties.hpp>
513#include <graphblas/spmd.hpp>
514
515#ifdef _GRB_WITH_LPF
516 // collects various BSP utilities
517 #include <graphblas/bsp/spmd.hpp>
518#endif
519
520#endif // end ``_H_GRAPHBLAS''
521
Defines the ALP/GraphBLAS level-0 API.
Provides an ALP monoid.
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:450
Provides a set of standard binary operators.
Provides an ALP semiring.