Schmidt algorithm