function precompute = precomputeDerivative(model,requested)

Z = double(model.monomtable | model.monomtable);
precompute = cell(length(model.linearindicies),length(model.evaluation_scheme));
%if any(model.deppattern(requested,model.linearindicies(variable)))
M = model.deppattern(requested,:);
active = any(M(:,model.linearindicies),1);
range = 1:length(model.linearindicies);
for variable = range(find(active(range)))% = range
    %dx = dx0;%zeros(length(model.c),1);
    %dx(model.linearindicies(variable)) = 1;
    %if any(model.deppattern(requested,model.linearindicies(variable)))
  %  if active(variable)%any(M(:,model.linearindicies(variable)))
        dx = full(sparse(model.linearindicies(variable),1,1,length(model.c),1));
        for i = 1:length(model.evaluation_scheme)
            precompute{variable,i}=0;
            switch model.evaluation_scheme{i}.group
                case 'eval'
                    for j = model.evaluation_scheme{i}.variables
                        k = model.evalMap{j}.variableIndex;
                        if any(dx(k))
                            if any(requested(model.evalMap{j}.computes))
                                precompute{variable,i}(j)=1;
                              %  if any(requested(model.evalMap{j}.computes))
                                    these = model.evalMap{j}.computes;
                                    dx(these) = 1;
                             %   end
                            end
                        end
                    end
                case 'monom'
                    computed = model.monomials(model.evaluation_scheme{i}.variables);                   
                    hh = any(Z(computed,find(dx)),2);                    
                    for j = computed(find(hh))
                        if requested(j)
                            dx(j) = 1;
                        end
                    end
                    
                otherwise
            end
            precompute{variable,i} = find(precompute{variable,i});
        end
  %  end
end
