ALP User Documentation 0.7.0
Algebraic Programming User Documentation
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
370#ifdef __DOXYGEN__
371
379#define _GRB_NO_LIBNUMA
380
388#define _GRB_NO_PINNING
389
400#define _GRB_NO_STDIO
401
417#define _GRB_NO_EXCEPTIONS
418
426#define _GRB_WITH_LPF
427
436#define _GRB_BACKEND reference
437
444#define _GRB_BSP1D_BACKEND
445
452namespace grb {
453
457 namespace algorithms {
458
462 namespace pregel {}
463
464 }
465
470 namespace interfaces {}
471
472}
473
474#endif // end ``#ifdef __DOXYGEN__''
475
476#ifndef _H_GRAPHBLAS
477#define _H_GRAPHBLAS
478
479// load active configuration
480#include <graphblas/config.hpp> //defines _GRB_BACKEND and _WITH_BSP
481
482// collects the user-level includes
483// the order of these includes matter--
484// do not modify without proper consideration!
485
486// First include all algebraic structures, which have the benefit of not
487// depending on anything else
488#include <graphblas/ops.hpp>
489#include <graphblas/monoid.hpp>
490#include <graphblas/semiring.hpp>
491
492// Then include containers. If containers rely on ALP/GraphBLAS primitives that
493// are defined as free functions, then container implementations must forward-
494// declare those.
495#include <graphblas/vector.hpp>
496#include <graphblas/matrix.hpp>
497
498// The aforementioned forward declarations must be in sync with the
499// declarations of the user primitives defined as free functions in the below.
500// The below relies on both algebraic structures/relations as well as container
501// definitions. By maintaining the current order, these do not require forward
502// declarations.
503#include <graphblas/io.hpp>
504#include <graphblas/benchmark.hpp>
505#include <graphblas/blas0.hpp>
506#include <graphblas/blas1.hpp>
507#include <graphblas/blas2.hpp>
508#include <graphblas/blas3.hpp>
509#include <graphblas/collectives.hpp>
510#include <graphblas/exec.hpp>
511#include <graphblas/init.hpp>
512#include <graphblas/ops.hpp>
513#include <graphblas/pinnedvector.hpp>
514#include <graphblas/properties.hpp>
515#include <graphblas/spmd.hpp>
516
517#ifdef _GRB_WITH_LPF
518 // collects various BSP utilities
519 #include <graphblas/bsp/spmd.hpp>
520#endif
521
522#endif // end ``_H_GRAPHBLAS''
523
Defines the ALP/GraphBLAS level-0 API.
Provides an ALP monoid.
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:452
Provides a set of standard binary operators.
Provides an ALP semiring.