function [c, ceq] = constraints(m_, C, O, O2, CO, CO2, H2O, H2, m)
% inequality constraints c and equality constraints ceq 

% initial values
m_CO2 = m_(1);
m_CO = m_(2); 
m_H2O = m_(3);
m_H2 = m_(4);
M_tot = m_(5);

% equality constraints: C balance, O balance, H balance, molar mass of
% mixture
ceq(1) = C.M/CO2.M * m_CO2 + C.M/CO.M * m_CO - C.M/CO2.M * CO2.n0 * CO2.M;
ceq(2) = O2.M/CO2.M * m_CO2 + O.M/CO.M * m_CO + O.M/H2O.M * m_H2O - O2.M/CO2.M * CO2.n0 * CO2.M;
ceq(3) = m_H2 + H2.M/H2O.M * m_H2O - H2.n0 * H2.M;
ceq(4) = 1/M_tot - m_CO2/(m * CO2.M) - m_H2/(m * H2.M) - m_CO/(m * CO.M) - m_H2O/(m * H2O.M);

% inequality constraints: non-negative mass and molar mass
c(1) = 0 - m_CO2;
c(2) = 0 - m_CO;
c(3) = 0 - m_H2;
c(4) = 0 - m_H2;
c(5) = 0 - M_tot;
end