CBMC
vector_typet Class Reference

The vector type. More...

#include <std_types.h>

+ Inheritance diagram for vector_typet:
+ Collaboration diagram for vector_typet:

Public Member Functions

 vector_typet (typet index_type, typet element_type, constant_exprt size)
 
typet index_type () const
 The type of any index expression into an instance of this type. More...
 
typetindex_type_nonconst ()
 The type of any index expression into an instance of this type. More...
 
const typetelement_type () const
 The type of the elements of the vector. More...
 
typetelement_type ()
 The type of the elements of the vector. More...
 
const constant_exprtsize () const
 
constant_exprtsize ()
 
- Public Member Functions inherited from type_with_subtypet
 type_with_subtypet (irep_idt _id, typet _subtype)
 
const typetsubtype () const
 
typetsubtype ()
 
- Public Member Functions inherited from typet
 typet ()
 
 typet (const irep_idt &_id)
 
 typet (irep_idt _id, typet _subtype)
 
typetadd_subtype ()
 
bool has_subtypes () const
 
bool has_subtype () const
 
void remove_subtype ()
 
const source_locationtsource_location () const
 
source_locationtadd_source_location ()
 
typetadd_type (const irep_idt &name)
 
const typetfind_type (const irep_idt &name) const
 
- Public Member Functions inherited from irept
bool is_nil () const
 
bool is_not_nil () const
 
 irept (const irep_idt &_id)
 
 irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub)
 
 irept ()=default
 
const irep_idtid () const
 
const std::string & id_string () const
 
void id (const irep_idt &_data)
 
const ireptfind (const irep_idt &name) const
 
ireptadd (const irep_idt &name)
 
ireptadd (const irep_idt &name, irept irep)
 
const std::string & get_string (const irep_idt &name) const
 
const irep_idtget (const irep_idt &name) const
 
bool get_bool (const irep_idt &name) const
 
signed int get_int (const irep_idt &name) const
 
std::size_t get_size_t (const irep_idt &name) const
 
long long get_long_long (const irep_idt &name) const
 
void set (const irep_idt &name, const irep_idt &value)
 
void set (const irep_idt &name, irept irep)
 
void set (const irep_idt &name, const long long value)
 
void set_size_t (const irep_idt &name, const std::size_t value)
 
void remove (const irep_idt &name)
 
void move_to_sub (irept &irep)
 
void move_to_named_sub (const irep_idt &name, irept &irep)
 
bool operator== (const irept &other) const
 
bool operator!= (const irept &other) const
 
void swap (irept &irep)
 
bool operator< (const irept &other) const
 defines ordering on the internal representation More...
 
bool ordering (const irept &other) const
 defines ordering on the internal representation More...
 
int compare (const irept &i) const
 defines ordering on the internal representation comments are ignored More...
 
void clear ()
 
void make_nil ()
 
subtget_sub ()
 
const subtget_sub () const
 
named_subtget_named_sub ()
 
const named_subtget_named_sub () const
 
std::size_t hash () const
 
std::size_t full_hash () const
 
bool full_eq (const irept &other) const
 
std::string pretty (unsigned indent=0, unsigned max_indent=0) const
 
- Public Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
 sharing_treet (irep_idt _id)
 
 sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub)
 
 sharing_treet ()
 
 sharing_treet (const sharing_treet &irep)
 
 sharing_treet (sharing_treet &&irep)
 
sharing_treetoperator= (const sharing_treet &irep)
 
sharing_treetoperator= (sharing_treet &&irep)
 
 ~sharing_treet ()
 
const dtread () const
 
dtwrite ()
 

Additional Inherited Members

- Public Types inherited from irept
using baset = tree_implementationt
 
- Public Types inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
using dt = tree_nodet< irept, forward_list_as_mapt< irep_idt, irept >, true >
 
using subt = typename dt::subt
 
using named_subt = typename dt::named_subt
 
using tree_implementationt = sharing_treet
 Used to refer to this class from derived classes. More...
 
- Static Public Member Functions inherited from type_with_subtypet
static void check (const typet &type, const validation_modet vm=validation_modet::INVARIANT)
 
- Static Public Member Functions inherited from typet
static void check (const typet &, const validation_modet=validation_modet::INVARIANT)
 Check that the type is well-formed (shallow checks only, i.e., subtypes are not checked) More...
 
static void validate (const typet &type, const namespacet &, const validation_modet vm=validation_modet::INVARIANT)
 Check that the type is well-formed, assuming that its subtypes have already been checked for well-formedness. More...
 
static void validate_full (const typet &type, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT)
 Check that the type is well-formed (full check, including checks of subtypes) More...
 
- Static Public Member Functions inherited from irept
static bool is_comment (const irep_idt &name)
 
static std::size_t number_of_non_comments (const named_subt &)
 count the number of named_sub elements that are not comments More...
 
- Protected Member Functions inherited from typet
const typetsubtype () const
 
typetsubtype ()
 
- Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
void detach ()
 
- Static Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
static void remove_ref (dt *old_data)
 
static void nonrecursive_destructor (dt *old_data)
 Does the same as remove_ref, but using an explicit stack instead of recursion. More...
 
- Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
dtdata
 
- Static Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
static dt empty_d
 

Detailed Description

The vector type.

Used to represent the short vectors used by CPU instruction sets such as MMX, SSE and AVX. They all provide registers that are something like 8 x int32, for example, and corresponding operations that operate element-wise on their operand vectors. Compared to array_typet, vector_typet has a fixed size whereas array_typet has no element-wise operators. Note that remove_vector.h removes this data type by compilation into arrays.

Definition at line 1007 of file std_types.h.

Constructor & Destructor Documentation

◆ vector_typet()

vector_typet::vector_typet ( typet  index_type,
typet  element_type,
constant_exprt  size 
)

Definition at line 247 of file std_types.cpp.

Member Function Documentation

◆ element_type() [1/2]

typet& vector_typet::element_type ( )
inline

The type of the elements of the vector.

This method is preferred over .subtype(), which will eventually be deprecated.

Definition at line 1034 of file std_types.h.

◆ element_type() [2/2]

const typet& vector_typet::element_type ( ) const
inline

The type of the elements of the vector.

This method is preferred over .subtype(), which will eventually be deprecated.

Definition at line 1026 of file std_types.h.

◆ index_type()

typet vector_typet::index_type ( ) const

The type of any index expression into an instance of this type.

Definition at line 257 of file std_types.cpp.

◆ index_type_nonconst()

typet& vector_typet::index_type_nonconst ( )
inline

The type of any index expression into an instance of this type.

This is added as a comment now for backwards compatibility, but will eventually be the first subtype.

Definition at line 1018 of file std_types.h.

◆ size() [1/2]

constant_exprt & vector_typet::size ( )

Definition at line 274 of file std_types.cpp.

◆ size() [2/2]

const constant_exprt & vector_typet::size ( ) const

Definition at line 269 of file std_types.cpp.


The documentation for this class was generated from the following files: