module CAS::C_PLUGIN

Constants

C_DEFINES
C_LOCAL_LIBRARIES
C_STD_LIBRARIES

Public Class Methods

write_header(op, name) click to toggle source
# File lib/Mr.CAS/c.rb, line 47
    def self.write_header(op, name)
      <<-TO_HEADER
#ifndef #{name}_HEADER
#define #{name}_HEADER

// Standard Libraries
#{ CAS::C_PLUGIN::C_STD_LIBRARIES.map { |e| "#include <#{e}>" }.join("\n") }

// Local Libraries
#{ CAS::C_PLUGIN::C_LOCAL_LIBRARIES.map { |e| "#include <#{e}>" }.join("\n") }

// Definitions
#{ CAS::C_PLUGIN::C_DEFINES.map { |k, v| "#define #{k} #{v}" }.join("\n") }

// Function
double #{name}(#{ op.args.map { |x| "double #{x.name}"}.join(", ") });

#endif // #{name}_HEADER
      TO_HEADER
    end
write_source(op, name) click to toggle source
# File lib/Mr.CAS/c.rb, line 68
    def self.write_source(op, name)
      <<-TO_SOURCE
#include "#{name}.h"

double #{name}(#{ op.args.map { |x| "double #{x.name}"}.join(", ") }) {
  return #{op.to_c};
}
      TO_SOURCE
    end