ALP User Documentation  0.8.preview
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 
395 #ifdef __DOXYGEN__
396 
404 #define _GRB_NO_LIBNUMA
405 
413 #define _GRB_NO_PINNING
414 
425 #define _GRB_NO_STDIO
426 
442 #define _GRB_NO_EXCEPTIONS
443 
451 #define _GRB_WITH_LPF
452 
461 #define _GRB_BACKEND reference
462 
469 #define _GRB_BSP1D_BACKEND
470 
477 namespace grb {
478 
482  namespace algorithms {
483 
487  namespace pregel {}
488 
489  }
490 
495  namespace interfaces {}
496 
497 }
498 
499 #endif // end ``#ifdef __DOXYGEN__''
500 
501 #ifndef _H_GRAPHBLAS
502 #define _H_GRAPHBLAS
503 
504 // load active configuration
505 #include <graphblas/config.hpp> //defines _GRB_BACKEND and _WITH_BSP
506 
507 // collects the user-level includes
508 // the order of these includes matter--
509 // do not modify without proper consideration!
510 
511 // First include all algebraic structures, which have the benefit of not
512 // depending on anything else
513 #include <graphblas/ops.hpp>
514 #include <graphblas/monoid.hpp>
515 #include <graphblas/semiring.hpp>
516 
517 // Then include containers. If containers rely on ALP/GraphBLAS primitives that
518 // are defined as free functions, then container implementations must forward-
519 // declare those.
520 #include <graphblas/vector.hpp>
521 #include <graphblas/matrix.hpp>
522 
523 // The aforementioned forward declarations must be in sync with the
524 // declarations of the user primitives defined as free functions in the below.
525 // The below relies on both algebraic structures/relations as well as container
526 // definitions. By maintaining the current order, these do not require forward
527 // declarations.
528 #include <graphblas/io.hpp>
529 #include <graphblas/benchmark.hpp>
530 #include <graphblas/blas0.hpp>
531 #include <graphblas/blas1.hpp>
532 #include <graphblas/blas2.hpp>
533 #include <graphblas/blas3.hpp>
534 #include <graphblas/collectives.hpp>
535 #include <graphblas/exec.hpp>
536 #include <graphblas/init.hpp>
537 #include <graphblas/ops.hpp>
538 #include <graphblas/pinnedvector.hpp>
539 #include <graphblas/properties.hpp>
540 #include <graphblas/spmd.hpp>
541 
542 #ifdef _GRB_WITH_LPF
543  // collects various BSP utilities
544  #include <graphblas/bsp/spmd.hpp>
545 #endif
546 
547 #endif // end ``_H_GRAPHBLAS''
548 
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:477
Provides an ALP semiring.
Defines the ALP/GraphBLAS level-0 API.
Provides a set of standard binary operators.
Provides an ALP monoid.