@@ -671,6 +671,17 @@ def visit_KernelLaunch(self, o):
671671 return c .Statement (f'{ o .name } { templates } <<<{ launch_config } >>>({ arguments } )' )
672672
673673 # Operator-handle machinery
674+ def _operator_description (self , o ):
675+ """
676+ Generate cgen description from an iterable of symbols and expressions.
677+ """
678+ if o .description :
679+ if isinstance (o .description , str ):
680+ return [c .Comment (o .description ), blankline ]
681+ elif isinstance (o .description , Iterable ):
682+ return [c .MultilineComment (o .description ), blankline ]
683+ else :
684+ return [c .Comment ("Devito generated operator" ), blankline ]
674685
675686 def _operator_includes (self , o ):
676687 """
@@ -752,6 +763,9 @@ def visit_Operator(self, o, mode='all'):
752763 esigns .append (self ._gen_signature (i , is_declaration = True ))
753764 efuncs .extend ([self ._visit (i ), blankline ])
754765
766+ # Top description
767+ description = self ._operator_description (o )
768+
755769 # Definitions
756770 headers = self ._operator_headers (o )
757771
@@ -772,8 +786,8 @@ def visit_Operator(self, o, mode='all'):
772786 if globs :
773787 globs .append (blankline )
774788
775- return c .Module (headers + includes + namespaces + typedecls + globs +
776- esigns + [blankline , kernel ] + efuncs )
789+ return c .Module (description + headers + includes + namespaces + typedecls
790+ + globs + esigns + [blankline , kernel ] + efuncs )
777791
778792
779793class CInterface (CGen ):
0 commit comments